mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-04 03:43:52 +02:00
207 lines
5.1 KiB
ObjectPascal
207 lines
5.1 KiB
ObjectPascal
|
|
{*****************************************}
|
|
{ }
|
|
{ FastReport v2.3 }
|
|
{ Format editor }
|
|
{ }
|
|
{ Copyright (c) 1998-99 by Tzyganenko A. }
|
|
{ }
|
|
{*****************************************}
|
|
|
|
unit LR_fmted;
|
|
|
|
interface
|
|
|
|
{$I LR_Vers.inc}
|
|
|
|
uses
|
|
Classes, SysUtils, LResources,
|
|
Forms, Controls, Graphics, Dialogs,
|
|
Buttons, StdCtrls,ExtCtrls, ButtonPanel,LR_Class;
|
|
|
|
type
|
|
|
|
{ TfrFmtForm }
|
|
|
|
TfrFmtForm = class(TForm)
|
|
ButtonPanel1: TButtonPanel;
|
|
GroupBox2: TGroupBox;
|
|
ComboBox1: TComboBox;
|
|
ComboBox2: TComboBox;
|
|
Panel1: TPanel;
|
|
Label5: TLabel;
|
|
Label6: TLabel;
|
|
SplEdit: TEdit;
|
|
Panel2: TPanel;
|
|
Edit1: TEdit;
|
|
Label1: TLabel;
|
|
Edit3: TEdit;
|
|
procedure ComboBox2Select(Sender: TObject);
|
|
procedure ComboBox1Change(Sender: TObject);
|
|
procedure SplEditEnter(Sender: TObject);
|
|
procedure ShowPanel1;
|
|
procedure ShowPanel2;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure frFmtFormShow(Sender: TObject);
|
|
private
|
|
fOldC1 : Integer;
|
|
FFormat: Integer;
|
|
FFormatStr:string;
|
|
function GetFormat: Integer;
|
|
function GetFormatStr: string;
|
|
procedure SetFormat(const AValue: Integer);
|
|
procedure SetFormatStr(const AValue: string);
|
|
public
|
|
{ Public declarations }
|
|
property EdFormat: Integer read GetFormat write SetFormat;
|
|
property EdFormatStr:string read GetFormatStr write SetFormatStr;
|
|
end;
|
|
|
|
var
|
|
frFmtForm: TfrFmtForm;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
uses LR_Const;
|
|
|
|
{$WARNINGS OFF}
|
|
procedure TfrFmtForm.ComboBox2Select(Sender: TObject);
|
|
begin
|
|
ShowPanel2;
|
|
ShowPanel1;
|
|
end;
|
|
|
|
procedure TfrFmtForm.ShowPanel1;
|
|
begin
|
|
Panel1.Visible := (ComboBox1.ItemIndex = 1) and (not Panel2.Visible);
|
|
if Panel1.Visible then
|
|
begin
|
|
Edit3.Text := IntToStr((FFormat and $0000FF00) div $00000100);
|
|
SplEdit.Text := Chr(FFormat and $000000FF);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrFmtForm.ShowPanel2;
|
|
begin
|
|
Panel2.Visible := ComboBox2.ItemIndex = 4;
|
|
end;
|
|
|
|
procedure TfrFmtForm.ComboBox1Change(Sender: TObject);
|
|
var
|
|
k: Integer;
|
|
begin
|
|
k := ComboBox1.ItemIndex;
|
|
if (k = -1) or (k=fOldC1) then Exit;
|
|
fOldC1:=k;
|
|
ComboBox2.Items.Clear;
|
|
Case k of
|
|
fmtText : ComboBox2.Items.Add(sFormat11);
|
|
fmtNumber : begin
|
|
ComboBox2.Items.Add(sFormat21);
|
|
ComboBox2.Items.Add(sFormat22);
|
|
ComboBox2.Items.Add(sFormat23);
|
|
ComboBox2.Items.Add(sFormat24);
|
|
ComboBox2.Items.Add(sFormat25);
|
|
end;
|
|
fmtDate : begin
|
|
ComboBox2.Items.Add(sFormat31);
|
|
ComboBox2.Items.Add(sFormat32);
|
|
ComboBox2.Items.Add(sFormat33);
|
|
ComboBox2.Items.Add(sFormat34);
|
|
ComboBox2.Items.Add(sFormat35);
|
|
end;
|
|
fmtTime : begin
|
|
ComboBox2.Items.Add(sFormat41);
|
|
ComboBox2.Items.Add(sFormat42);
|
|
ComboBox2.Items.Add(sFormat43);
|
|
ComboBox2.Items.Add(sFormat44);
|
|
ComboBox2.Items.Add(sFormat45);
|
|
end;
|
|
fmtBoolean: begin
|
|
ComboBox2.Items.Add(sFormat51);
|
|
ComboBox2.Items.Add(sFormat52);
|
|
ComboBox2.Items.Add(sFormat53);
|
|
ComboBox2.Items.Add(sFormat54);
|
|
ComboBox2.Items.Add(sFormat55);
|
|
end;
|
|
end;
|
|
|
|
ComboBox2.ItemIndex := 0;
|
|
if Sender <> nil then
|
|
begin
|
|
ComboBox2Select(nil);
|
|
ShowPanel1;
|
|
Edit1.Text := '';
|
|
end;
|
|
end;
|
|
|
|
procedure TfrFmtForm.SplEditEnter(Sender: TObject);
|
|
begin
|
|
SplEdit.SelectAll;
|
|
end;
|
|
{$WARNINGS ON}
|
|
|
|
procedure TfrFmtForm.FormCreate(Sender: TObject);
|
|
begin
|
|
fOldC1:=-1;
|
|
Caption := sFmtFormFrmtVar;
|
|
GroupBox2.Caption := sFmtFormVarFmt;
|
|
Label5.Caption := sFmtFormDeciD;
|
|
Label6.Caption := sFmtFormFrac;
|
|
Label1.Caption := sFmtFormFrmt;
|
|
SplEdit.Text := DefaultFormatSettings.DecimalSeparator;
|
|
end;
|
|
|
|
procedure TfrFmtForm.frFmtFormShow(Sender: TObject);
|
|
begin
|
|
Panel1.Hide;
|
|
Panel2.Hide;
|
|
ComboBox1.Items.Clear;
|
|
ComboBox1.Items.Add(sCateg1);
|
|
ComboBox1.Items.Add(sCateg2);
|
|
ComboBox1.Items.Add(sCateg3);
|
|
ComboBox1.Items.Add(sCateg4);
|
|
ComboBox1.Items.Add(sCateg5);
|
|
|
|
ComboBox1.ItemIndex := (FFormat and $0F000000) div $01000000;
|
|
ComboBox1Change(nil);
|
|
ComboBox2.ItemIndex := (FFormat and $00FF0000) div $00010000;
|
|
ShowPanel2;
|
|
ShowPanel1;
|
|
end;
|
|
|
|
procedure TfrFmtForm.SetFormat(const AValue: Integer);
|
|
begin
|
|
FFormat:=AValue;
|
|
end;
|
|
|
|
function TfrFmtForm.GetFormatStr: string;
|
|
begin
|
|
if Edit1.Enabled then
|
|
Result := Edit1.Text
|
|
else
|
|
Result := FFormatStr;
|
|
end;
|
|
|
|
procedure TfrFmtForm.SetFormatStr(const AValue: string);
|
|
begin
|
|
FFormatStr:=AValue;
|
|
Edit1.Text:=AValue;
|
|
end;
|
|
|
|
function TfrFmtForm.GetFormat: Integer;
|
|
var
|
|
c: Char;
|
|
begin
|
|
Result := ComboBox1.ItemIndex * $01000000 + ComboBox2.ItemIndex * $00010000 +
|
|
StrToIntDef(Edit3.Text, 0) * $00000100;
|
|
c := DefaultFormatSettings.DecimalSeparator;
|
|
if SplEdit.Text <> '' then
|
|
c := SplEdit.Text[1];
|
|
Result := Result + Ord(c);
|
|
end;
|
|
|
|
end.
|