Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
[ÇÖZÜLDÜ] Delphi Formül Hesaplamaları Hk.
#11
Ben hala sizin neden sorun yaşadığınız takıldım. Çünkü verdiğiniz formülle herhangi bir sorun yaşamadım.
Ağlarsa kablosuz ağlar, gerisi yerel ağlar...
Cevapla
#12
(14-06-2020, Saat: 09:29)engerex Adlı Kullanıcıdan Alıntı: Ben hala sizin neden sorun yaşadığınız takıldım. Çünkü verdiğiniz formülle herhangi bir sorun yaşamadım.
formulu excelden alıp aynı şekilde uyguladığımda aldığım sonuç ile, önce parantez içi işlemleri yaparak sonra diğer işlemleri yaptığım durumdaki formulde aldığım sonuç farklıydı.
Cevapla
#13
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.  Idea

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;



m1gzsio2id9lvklnt1rh.gif
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#14
(16-06-2020, Saat: 11:43)mrmarman Adlı Kullanıcıdan Alıntı: 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.  Idea

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;



m1gzsio2id9lvklnt1rh.gif

Elinize sağlık hocam.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi 10.1 Berlin, FireDac, SQLite, .s3db Gürcan 2 266 28-07-2020, Saat: 10:57
Son Yorum: Gürcan
Heart Delphi Edge Web Tarayıcı ahmmetdelphi 9 532 26-07-2020, Saat: 09:12
Son Yorum: ahmmetdelphi
  Delphi 10.3.3 Fast Report MEDCEZİR 2 350 20-07-2020, Saat: 11:57
Son Yorum: kaplanalpay0
  Krityere göre listeleme - çözüldü ekank 3 427 16-07-2020, Saat: 22:05
Son Yorum: ekank
  (Çözüldü)Memory aşımı powerghost 14 1.181 16-07-2020, Saat: 10:50
Son Yorum: mrmarman



Konuyu Okuyanlar: 1 Ziyaretçi