Componentes.Terceros.FastRe.../official/3.23/Source/frxEvaluateForm.pas
2007-09-10 15:54:09 +00:00

100 lines
2.3 KiB
ObjectPascal

{******************************************}
{ }
{ FastReport v3.0 }
{ Evaluate dialog }
{ }
{ Copyright (c) 1998-2006 }
{ by Alexander Tzyganenko, }
{ Fast Reports Inc. }
{ }
{******************************************}
unit frxEvaluateForm;
interface
{$I frx.inc}
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, fs_iinterpreter
{$IFDEF Delphi6}
, Variants
{$ENDIF};
type
TfrxEvaluateForm = class(TForm)
Label1: TLabel;
ExpressionE: TEdit;
Label2: TLabel;
ResultM: TMemo;
procedure ExpressionEKeyPress(Sender: TObject; var Key: Char);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
FScript: TfsScript;
public
property Script: TfsScript read FScript write FScript;
end;
implementation
{$R *.DFM}
uses frxRes;
procedure TfrxEvaluateForm.ExpressionEKeyPress(Sender: TObject; var Key: Char);
var
v: Variant;
s: String;
begin
if Key = #13 then
begin
v := FScript.Evaluate(ExpressionE.Text);
s := VarToStr(v);
if TVarData(v).VType = varBoolean then
if Boolean(v) = True then
s := 'True' else
s := 'False'
else if (TVarData(v).VType = varString) or (TVarData(v).VType = varOleStr) then
s := '''' + v + ''''
else if v = Null then
s := 'Null';
ResultM.Text := s;
ExpressionE.SelectAll;
end
else if Key = #27 then
Close;
end;
procedure TfrxEvaluateForm.FormShow(Sender: TObject);
begin
ExpressionE.SelectAll;
ResultM.Text := '';
end;
procedure TfrxEvaluateForm.FormCreate(Sender: TObject);
begin
Caption := frxGet(5500);
Label1.Caption := frxGet(5501);
Label2.Caption := frxGet(5502);
end;
procedure TfrxEvaluateForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_ESCAPE then
ModalResult := mrCancel;
if Key = VK_F1 then
frxResources.Help(Self);
end;
end.
//<censored>