lazarus/components/plotfunction/demo/expression/frmmain.pp
paul c8c02dad27 components: use FPC resources for demos
git-svn-id: trunk@26892 -
2010-07-29 09:04:06 +00:00

79 lines
1.6 KiB
ObjectPascal

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.