Merhaba.
- Konu çözülmüş olarak kodlu ve hortlatmak istemem ama yeni öğrendiğim çok şık bir özellik varmış.
- Bu özelliği de bir fonksiyon olarak düzenleyip bu başlık altından paylaşayım istedim. Tam da bu konu ile ilgili alakalı olduğundan ayrılmasını istemedim.
- Özellikle UNIT isimlerini başa yazıyorum ki, projenizin içerisinde kullanırken nerede hangi unite hangi fonksiyon / proc için ihtiyacınız olduğu bilinsin... Bu kısımlarını sadeleştirebileceğinizi hatırlatayım.
Kullanımı :
- Konu çözülmüş olarak kodlu ve hortlatmak istemem ama yeni öğrendiğim çok şık bir özellik varmış.
- Bu özelliği de bir fonksiyon olarak düzenleyip bu başlık altından paylaşayım istedim. Tam da bu konu ile ilgili alakalı olduğundan ayrılmasını istemedim.
- Özellikle UNIT isimlerini başa yazıyorum ki, projenizin içerisinde kullanırken nerede hangi unite hangi fonksiyon / proc için ihtiyacınız olduğu bilinsin... Bu kısımlarını sadeleştirebileceğinizi hatırlatayım.
uses System.Bindings.EvalProtocol , System.Bindings.EvalSys , System.Bindings.Evaluator; function Calculate( aSource: String ): String; var aScope : System.Bindings.EvalProtocol.IScope; aCompBind : System.Bindings.EvalProtocol.ICompiledBinding; begin aScope := System.Bindings.EvalSys.BasicOperators; aCompBind := System.Bindings.Evaluator.Compile( aSource, aScope ); Result := aCompBind.Evaluate( aScope, nil, nil ).GetValue.ToString; end;
Kullanımı :
procedure TForm1.Button1Click(Sender: TObject); begin Edit1.Text := '10*(-1+7*3/2)+1'; Edit2.Text := Calculate( Edit1.Text ); end;

Saygılarımla
Muharrem ARMAN

Muharrem ARMAN


