Ceci est une ancienne révision du document !


Lazarus: Calculer l'expression contenu dans un string

unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, fpexprpars;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    EdExp: TEdit;
    EdRes: TEdit;
    procedure Button1Click(Sender: TObject);
  private
  public
  end;
 
var
  Form1: TForm1;
 
implementation
{$R *.lfm}
{ TForm1 }
 
procedure TForm1.Button1Click(Sender: TObject);
var
  vExpParser: TFPExpressionParser;
  vExpResult: TFPExpressionResult;
  vResult: double;
begin
  vExpParser := TFPExpressionParser.Create(nil);
  try
    vExpParser.Builtins := [bcMath];
    vExpParser.Expression := EdExp.Text; // On charge le parser avec le contenu du TEdit EdExp
    vExpResult := vExpParser.Evaluate;
    vResult := ArgToFloat(vExpResult);
    EdRes.Text := FloatToStr(vResult); // On affiche le résultat dans le TEdit EdRes
  finally
    vExpParser.Free;
  end;
end;
 
 
end.
Vous pourriez laisser un commentaire si vous étiez connecté.