/components/plotfunction/demo/expression/frmmain.pp
http://github.com/graemeg/lazarus · Puppet · 78 lines · 62 code · 16 blank · 0 comment · 0 complexity · 48b1f0a5f63d5215cd312fee477653a7 MD5 · raw file
- unit frmmain;
- {$mode objfpc}{$H+}
- interface
- uses
- Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
- ExtCtrls, StdCtrls, fpexprpars,exprplotpanel;
- type
- { TMainForm }
- TMainForm = class(TForm)
- Button1: TButton;
- EA: TEdit;
- EB: TEdit;
- EC: TEdit;
- LEA: TLabel;
- LEC: TLabel;
- LEB: TLabel;
- Panel1: TPanel;
- PParams: TPanel;
- procedure Button1Click(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- private
- { private declarations }
- FPanel : TPlotExpressionPanel;
- public
- { public declarations }
- end;
- var
- MainForm: TMainForm;
- implementation
- {$R *.lfm}
- { TMainForm }
- procedure TMainForm.FormCreate(Sender: TObject);
- begin
- FPanel:=TPlotExpressionPanel.Create(Self);
- FPanel.Parent:=Panel1;
- FPanel.Align:=alClient;
- FPanel.Identifiers.AddFloatVariable('a',1.0);
- FPanel.Identifiers.AddFloatVariable('b',0);
- FPanel.Identifiers.AddFloatVariable('c',0);
- FPanel.XAxis.Origin:=-30;
- FPanel.XAxis.DrawZero:=True;
- FPanel.YAxis.Caption.Alignment:=taCenter;
- FPanel.YAxis.Origin:=-10;
- FPanel.YAxis.DrawZero:=True;
- FPanel.Expression:='a * (x * x) + b * x + c';
- FPanel.Active:=True;
- FPanel.Caption.Title:='Square function demo';
- FPanel.Caption.Alignment:=taRightJustify;
- end;
- procedure TMainForm.Button1Click(Sender: TObject);
- Var
- A,b,c : TExprFloat;
- begin
- A:=StrToFLoat(EA.Text);
- b:=StrToFLoat(EB.Text);
- C:=StrToFLoat(EC.Text);
- FPanel.Identifiers.IdentifierByName('a').AsFloat:=A;
- FPanel.Identifiers.IdentifierByName('b').AsFloat:=B;
- FPanel.Identifiers.IdentifierByName('c').AsFloat:=C;
- FPanel.Invalidate;
- end;
- end.