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.
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ı.
Yazılımcı, kahveyi koda çeviren bir organizmadır.
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.
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Logo Go3 de döviz tablosunda Date_ alanına veri (Çözüldü) yazma cinarbil 4 128 Dün, Saat: 08:25
Son Yorum: cinarbil
  delphi 10.4 deutsch1988 0 74 18-04-2024, Saat: 11:46
Son Yorum: deutsch1988
  AdoQuery ile ilgili bir sorun. (Çözüldü) Bay_Y 4 122 17-04-2024, Saat: 10:58
Son Yorum: Bay_Y
  Delphi virus gibi deutsch1988 11 500 12-04-2024, Saat: 17:36
Son Yorum: deutsch1988
  Delphi 7 Unrar mcuyan 12 680 19-03-2024, Saat: 10:30
Son Yorum: frmman



Konuyu Okuyanlar: 1 Ziyaretçi