LoginSignup
5
1

More than 1 year has passed since last update.

[Delphi] Expression Engine

Posted at

Expression Engine

まずはこれを見て!
calc.gif
Bindings の仕組みでなんと式を評価できる。
そう Delphi ならね。

コードは

// uses には System.Bindings.Helper を追加
procedure TfrmCalculator.Calc;
begin
  var B := TBindings.CreateExpression([], edtExpression.Text);
  try
    edtResult.Text := B.Evaluate.GetValue.AsExtended.ToString;
  finally
    B.Free;
  end;
end;

たったこれだけ!

B.EvaluteTValue 型を返すので、あとはよしなに。

ネタ元は

マルコカントゥのブログ
https://blog.marcocantu.com/blog/2021-may-delphi-expression-engine.html

その日本語訳
https://blogs.embarcadero.com/ja/using-delphis-expressions-engine-ja/

オブジェクトを登録すればそのプロパティを使ったりもできるので、Eval といっても差し支えない様な気がする。

おわりに

Eval が使えるとなるとかなり強力な機能と言える。
上手く使えば関数電卓が再現できそう!

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1