mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-01 14:03:47 +02:00
207 lines
4.3 KiB
ObjectPascal
207 lines
4.3 KiB
ObjectPascal
|
|
{*****************************************}
|
|
{ }
|
|
{ FastReport v2.3 }
|
|
{ Variables form }
|
|
{ }
|
|
{ Copyright (c) 1998-99 by Tzyganenko A. }
|
|
{ }
|
|
{*****************************************}
|
|
|
|
unit LR_Var;
|
|
|
|
interface
|
|
|
|
{$I LR_Vers.inc}
|
|
|
|
uses
|
|
Classes, SysUtils, LResources,
|
|
Forms, Controls, Graphics, Dialogs,
|
|
StdCtrls,
|
|
|
|
LCLType,LCLIntf,
|
|
|
|
LR_Const;
|
|
|
|
type
|
|
|
|
TfrVarForm = class(TForm)
|
|
ValList: TListBox;
|
|
ValCombo: TComboBox;
|
|
Label1: TLabel;
|
|
procedure ValListDblClick(Sender: TObject);
|
|
procedure ValListKeyDown(Sender: TObject; var Key: Word;
|
|
{%H-}Shift: TShiftState);
|
|
procedure ValComboClick(Sender: TObject);
|
|
procedure FormActivate(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormDeactivate(Sender: TObject);
|
|
procedure FormKeyDown(Sender: TObject; var Key: Word;
|
|
{%H-}Shift: TShiftState);
|
|
private
|
|
{ Private declarations }
|
|
function CurVal: String;
|
|
function CurDataSet: String;
|
|
procedure GetVariables;
|
|
procedure GetSpecValues;
|
|
procedure GetFRVariables;
|
|
procedure FillValCombo;
|
|
public
|
|
{ Public declarations }
|
|
SelectedItem: String;
|
|
end;
|
|
|
|
var
|
|
frVarForm: TfrVarForm;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
uses LR_Class;
|
|
|
|
var
|
|
LastCategory: String;
|
|
|
|
function TfrVarForm.CurVal: String;
|
|
begin
|
|
Result := '';
|
|
if ValList.ItemIndex <> -1 then
|
|
Result := ValList.Items[ValList.ItemIndex];
|
|
end;
|
|
|
|
function TfrVarForm.CurDataSet: String;
|
|
begin
|
|
Result := '';
|
|
if ValCombo.ItemIndex <> -1 then
|
|
Result := ValCombo.Items[ValCombo.ItemIndex];
|
|
end;
|
|
|
|
procedure TfrVarForm.FillValCombo;
|
|
var
|
|
s: TStringList;
|
|
begin
|
|
s := TStringList.Create;
|
|
CurReport.GetCategoryList(s);
|
|
s.Add(sSpecVal);
|
|
s.Add(sFRVariables);
|
|
ValCombo.Items.Assign(s);
|
|
s.Free;
|
|
end;
|
|
|
|
procedure TfrVarForm.ValComboClick(Sender: TObject);
|
|
begin
|
|
if CurDataSet = sFRVariables then
|
|
GetFRVariables
|
|
else
|
|
if CurDataSet = sSpecVal then
|
|
GetSpecValues
|
|
else
|
|
GetVariables;
|
|
end;
|
|
|
|
procedure TfrVarForm.GetVariables;
|
|
begin
|
|
CurReport.GetVarList(ValCombo.ItemIndex, ValList.Items);
|
|
end;
|
|
|
|
procedure TfrVarForm.GetSpecValues;
|
|
var
|
|
i: Integer;
|
|
begin
|
|
with ValList.Items do
|
|
begin
|
|
Clear;
|
|
for i := 0 to frSpecCount-1 do
|
|
if i <> 1 then
|
|
Add(frSpecArr[i]);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrVarForm.GetFRVariables;
|
|
var
|
|
i: Integer;
|
|
begin
|
|
with ValList.Items do
|
|
begin
|
|
Clear;
|
|
for i := 0 to frVariables.Count - 1 do
|
|
Add(frVariables.Name[i]);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrVarForm.ValListKeyDown(Sender: TObject; var Key: Word;
|
|
Shift: TShiftState);
|
|
begin
|
|
if Key = vk_Return then
|
|
begin
|
|
if CurDataSet <> sSpecVal then
|
|
SelectedItem := CurVal
|
|
else
|
|
if ValList.items.Count>0 then
|
|
begin
|
|
if ValList.ItemIndex > 0 then
|
|
SelectedItem := frSpecFuncs[ValList.ItemIndex + 1]
|
|
else
|
|
SelectedItem := frSpecFuncs[0];
|
|
end;
|
|
|
|
ModalResult := mrOk;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrVarForm.ValListDblClick(Sender: TObject);
|
|
begin
|
|
if CurDataSet <> sSpecVal then
|
|
SelectedItem := CurVal
|
|
else
|
|
if ValList.items.Count>0 then
|
|
begin
|
|
if ValList.ItemIndex > 0 then
|
|
SelectedItem := frSpecFuncs[ValList.ItemIndex + 1]
|
|
else
|
|
SelectedItem := frSpecFuncs[0];
|
|
end;
|
|
|
|
ModalResult:=mrOk;
|
|
end;
|
|
|
|
procedure TfrVarForm.FormKeyDown(Sender: TObject; var Key: Word;
|
|
Shift: TShiftState);
|
|
begin
|
|
if Key = vk_Escape then
|
|
ModalResult := mrCancel;
|
|
end;
|
|
|
|
procedure TfrVarForm.FormCreate(Sender: TObject);
|
|
begin
|
|
Caption := sVarFormCapt;
|
|
Label1.Caption := sVarFormCat;
|
|
end;
|
|
|
|
procedure TfrVarForm.FormActivate(Sender: TObject);
|
|
begin
|
|
FillValCombo;
|
|
if ValCombo.Items.IndexOf(LastCategory) <> -1 then
|
|
ValCombo.ItemIndex := ValCombo.Items.IndexOf(LastCategory)
|
|
else
|
|
ValCombo.ItemIndex := 0;
|
|
ValComboClick(nil);
|
|
end;
|
|
|
|
procedure TfrVarForm.FormDeactivate(Sender: TObject);
|
|
begin
|
|
if ModalResult = mrOk then
|
|
if CurDataSet <> sSpecVal then
|
|
SelectedItem := CurVal
|
|
else
|
|
if ValList.ItemIndex > 0 then
|
|
SelectedItem := frSpecFuncs[ValList.ItemIndex + 1]
|
|
else
|
|
SelectedItem := frSpecFuncs[0];
|
|
LastCategory := ValCombo.Items[ValCombo.ItemIndex];
|
|
end;
|
|
|
|
end.
|
|
|