
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8137 8e941d3f-bd1b-0410-a28a-d453659cc2b4
390 lines
12 KiB
ObjectPascal
390 lines
12 KiB
ObjectPascal
unit main;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Spin,
|
|
ComCtrls, ExButtons;
|
|
|
|
type
|
|
|
|
{ TForm1 }
|
|
|
|
TForm1 = class(TForm)
|
|
Button1: TButton;
|
|
Button2: TButton;
|
|
cbBorderColorDisabled: TColorButton;
|
|
clbFontColorDisabled: TColorButton;
|
|
clbFontColorDown: TColorButton;
|
|
clbFontColorFocused: TColorButton;
|
|
clbFontColorHot: TColorButton;
|
|
clbFontColorNormal: TColorButton;
|
|
cbColorDownFrom: TColorButton;
|
|
cbBorderColorDown: TColorButton;
|
|
cbColorDownTo: TColorButton;
|
|
cbBorderColorFocused: TColorButton;
|
|
cbBorderColorHot: TColorButton;
|
|
cbBorderColorNormal: TColorButton;
|
|
cbColorNormalFrom: TColorButton;
|
|
cbColorNormalTo: TColorButton;
|
|
cbColorHotFrom: TColorButton;
|
|
cbColorHotTo: TColorButton;
|
|
cbColorDisabledFrom: TColorButton;
|
|
cbColorDisabledTo: TColorButton;
|
|
cbColorFocusedFrom: TColorButton;
|
|
cbColorFocusedTo: TColorButton;
|
|
cbEnabled: TCheckBox;
|
|
cbGradient: TCheckBox;
|
|
cbShowFocusRect: TCheckBox;
|
|
cbAutoSize: TCheckBox;
|
|
cbFontNormalBold: TCheckBox;
|
|
cbFontHotBold: TCheckBox;
|
|
cbFontDisabledBold: TCheckBox;
|
|
cbFontFocusedBold: TCheckBox;
|
|
cbFontDownBold: TCheckBox;
|
|
cbDefaultDrawing: TCheckBox;
|
|
cbWordWrap: TCheckBox;
|
|
cmbAlignment: TComboBox;
|
|
GroupBox1: TGroupBox;
|
|
Label1: TLabel;
|
|
lblAlignment: TLabel;
|
|
Label11: TLabel;
|
|
Label12: TLabel;
|
|
Label2: TLabel;
|
|
Label3: TLabel;
|
|
Label4: TLabel;
|
|
Label5: TLabel;
|
|
Label6: TLabel;
|
|
Label7: TLabel;
|
|
Label8: TLabel;
|
|
Label9: TLabel;
|
|
Memo1: TMemo;
|
|
seBorderWidthNormal: TSpinEdit;
|
|
seBorderWidthHot: TSpinEdit;
|
|
seBorderWidthDisabled: TSpinEdit;
|
|
seBorderWidthFocused: TSpinEdit;
|
|
seBorderWidthDown: TSpinEdit;
|
|
SpinEdit1: TSpinEdit;
|
|
SpinEdit2: TSpinEdit;
|
|
udFontSizeNormal: TUpDown;
|
|
procedure Button2Click(Sender: TObject);
|
|
procedure ButtonClick(Sender: TObject);
|
|
procedure cbAutoSizeChange(Sender: TObject);
|
|
procedure cbColorDisabledFromToChanged(Sender: TObject);
|
|
procedure cbColorDownFromToChanged(Sender: TObject);
|
|
procedure cbColorFocusedFromToChanged(Sender: TObject);
|
|
procedure cbColorHotFromToChanged(Sender: TObject);
|
|
procedure cbColorNormalFromToChanged(Sender: TObject);
|
|
procedure cbEnabledChange(Sender: TObject);
|
|
procedure cbGradientChange(Sender: TObject);
|
|
procedure cbShowFocusRectChange(Sender: TObject);
|
|
procedure cbFontBoldChange(Sender: TObject);
|
|
procedure cbDefaultDrawingChange(Sender: TObject);
|
|
procedure cbWordWrapChange(Sender: TObject);
|
|
procedure cmbAlignmentChange(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormShow(Sender: TObject);
|
|
procedure seBorderWidthDisabledChange(Sender: TObject);
|
|
procedure seBorderWidthDownChange(Sender: TObject);
|
|
procedure seBorderWidthFocusedChange(Sender: TObject);
|
|
procedure seBorderWidthHotChange(Sender: TObject);
|
|
procedure seBorderWidthNormalChange(Sender: TObject);
|
|
procedure SpinEdit1Change(Sender: TObject);
|
|
procedure SpinEdit1EditingDone(Sender: TObject);
|
|
procedure SpinEdit2Change(Sender: TObject);
|
|
procedure SpinEdit2EditingDone(Sender: TObject);
|
|
procedure udFontSizeNormalClick(Sender: TObject; Button: TUDBtnType);
|
|
private
|
|
FButton1: TButtonEx;
|
|
|
|
public
|
|
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
uses
|
|
Unit2;
|
|
|
|
{ TForm1 }
|
|
|
|
procedure TForm1.Button2Click(Sender: TObject);
|
|
var
|
|
F: TForm2;
|
|
res: TModalResult;
|
|
begin
|
|
F := TForm2.Create(nil);
|
|
try
|
|
res := F.ShowModal;
|
|
case res of
|
|
mrOK: ShowMessage('ModalResult = mrOK');
|
|
mrCancel: ShowMessage('ModalResult = mrCancel');
|
|
mrNone: ShowMessage('ModalResult = mrNone');
|
|
else ShowMessage('unexpected ModalResult');
|
|
end;
|
|
finally
|
|
F.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.ButtonClick(Sender: TObject);
|
|
var
|
|
s: String;
|
|
begin
|
|
if Sender = FButton1 then
|
|
s := 'Ex '
|
|
else
|
|
s := ' ';
|
|
Memo1.Lines.Add(s + FormatDateTime('hh:nn:ss.zzz', now))
|
|
end;
|
|
|
|
procedure TForm1.cbAutoSizeChange(Sender: TObject);
|
|
begin
|
|
//FButton1.Width := 100;
|
|
//Button1.Width := 100;
|
|
FButton1.AutoSize := cbAutoSize.Checked;
|
|
Button1.AutoSize := cbAutoSize.Checked;
|
|
end;
|
|
|
|
procedure TForm1.cbColorDisabledFromToChanged(Sender: TObject);
|
|
var
|
|
colorBtn: TColorButton;
|
|
begin
|
|
if not (Sender is TColorButton) then exit;
|
|
colorBtn := TColorButton(Sender);
|
|
if colorBtn.Caption = 'From' then
|
|
FButton1.Colors.ColorDisabledFrom := colorBtn.ButtonColor
|
|
else if colorBtn.Caption = 'To' then
|
|
FButton1.Colors.ColorDisabledTo := colorBtn.ButtonColor
|
|
else if colorBtn.Caption = 'Color' then
|
|
FButton1.Border.ColorDisabled := colorBtn.ButtonColor
|
|
else if colorBtn.Caption = 'Font' then
|
|
FButton1.FontDisabled.Color := colorBtn.ButtonColor;
|
|
end;
|
|
|
|
procedure TForm1.cbColorDownFromToChanged(Sender: TObject);
|
|
var
|
|
colorBtn: TColorButton;
|
|
begin
|
|
if not (Sender is TColorButton) then exit;
|
|
colorBtn := TColorButton(Sender);
|
|
if colorBtn.Caption = 'From' then
|
|
FButton1.Colors.ColorDownFrom := colorBtn.ButtonColor
|
|
else if colorBtn.Caption = 'To' then
|
|
FButton1.Colors.ColorDownTo := colorBtn.ButtonColor
|
|
else if colorBtn.Caption = 'Color' then
|
|
FButton1.Border.ColorDown := colorBtn.ButtonColor
|
|
else if colorBtn.Caption = 'Font' then
|
|
FButton1.FontDown.Color := colorBtn.ButtonColor;
|
|
end;
|
|
|
|
procedure TForm1.cbColorFocusedFromToChanged(Sender: TObject);
|
|
var
|
|
colorBtn: TColorButton;
|
|
begin
|
|
if not (Sender is TColorButton) then exit;
|
|
colorBtn := TColorButton(Sender);
|
|
if colorBtn.Caption = 'From' then
|
|
FButton1.Colors.ColorFocusedFrom := colorBtn.ButtonColor
|
|
else if colorBtn.Caption = 'To' then
|
|
FButton1.Colors.ColorFocusedTo := colorBtn.ButtonColor
|
|
else if colorBtn.Caption = 'Color' then
|
|
FButton1.Border.ColorFocused := colorBtn.ButtonColor
|
|
else if colorBtn.Caption = 'Font' then
|
|
FButton1.FontFocused.Color := colorBtn.ButtonColor;
|
|
end;
|
|
|
|
procedure TForm1.cbColorHotFromToChanged(Sender: TObject);
|
|
var
|
|
colorBtn: TColorButton;
|
|
begin
|
|
if not (Sender is TColorButton) then exit;
|
|
colorBtn := TColorButton(Sender);
|
|
if colorBtn.Caption = 'From' then
|
|
FButton1.Colors.ColorHotFrom := colorBtn.ButtonColor
|
|
else if colorBtn.Caption = 'To' then
|
|
FButton1.Colors.ColorHotTo := colorBtn.ButtonColor
|
|
else if colorBtn.Caption = 'Color' then
|
|
FButton1.Border.ColorHot := colorBtn.ButtonColor
|
|
else if colorBtn.Caption = 'Font' then
|
|
FButton1.FontHot.Color := colorBtn.ButtonColor;
|
|
end;
|
|
|
|
procedure TForm1.cbColorNormalFromToChanged(Sender: TObject);
|
|
var
|
|
colorBtn: TColorButton;
|
|
begin
|
|
if not (Sender is TColorButton) then exit;
|
|
colorBtn := TColorButton(Sender);
|
|
if colorBtn.Caption = 'From' then
|
|
FButton1.Colors.ColorNormalFrom := colorBtn.ButtonColor
|
|
else if colorBtn.Caption = 'To' then
|
|
FButton1.Colors.ColorNormalTo := colorBtn.ButtonColor
|
|
else if colorBtn.Caption = 'Color' then
|
|
FButton1.Border.ColorNormal := colorBtn.ButtonColor
|
|
else if colorBtn.Caption = 'Font' then
|
|
FButton1.Font.Color := colorBtn.ButtonColor;
|
|
end;
|
|
|
|
procedure TForm1.cbEnabledChange(Sender: TObject);
|
|
begin
|
|
FButton1.Enabled := cbEnabled.Checked;
|
|
Button1.Enabled := cbEnabled.Checked;
|
|
end;
|
|
|
|
procedure TForm1.cbGradientChange(Sender: TObject);
|
|
begin
|
|
FButton1.Gradient := cbGradient.Checked;
|
|
end;
|
|
|
|
procedure TForm1.cbShowFocusRectChange(Sender: TObject);
|
|
begin
|
|
FButton1.ShowFocusRect := cbShowFocusRect.Checked;
|
|
end;
|
|
|
|
procedure TForm1.cbWordWrapChange(Sender: TObject);
|
|
begin
|
|
FButton1.WordWrap := cbWordwrap.Checked;
|
|
end;
|
|
|
|
procedure TForm1.cbDefaultDrawingChange(Sender: TObject);
|
|
begin
|
|
FButton1.DefaultDrawing := cbDefaultDrawing.Checked;
|
|
end;
|
|
|
|
procedure TForm1.cmbAlignmentChange(Sender: TObject);
|
|
begin
|
|
Fbutton1.Alignment := TAlignment(cmbAlignment.ItemIndex);
|
|
end;
|
|
|
|
procedure TForm1.cbFontBoldChange(Sender: TObject);
|
|
var
|
|
fnt: TFont;
|
|
begin
|
|
if Sender = cbFontNormalBold then
|
|
fnt := FButton1.Font
|
|
else if Sender = cbFontHotBold then
|
|
fnt := FButton1.FontHot
|
|
else if Sender = cbFontDisabledBold then
|
|
fnt := FButton1.FontDisabled
|
|
else if Sender = cbFontFocusedBold then
|
|
fnt := FButton1.FontFocused
|
|
else if Sender = cbFontDownBold then
|
|
fnt := FButton1.FontDown
|
|
else
|
|
raise Exception.Create('Unknown font');
|
|
if TCheckbox(Sender).Checked then
|
|
fnt.Style := fnt.Style + [fsBold]
|
|
else
|
|
fnt.Style := fnt.Style - [fsBold];
|
|
end;
|
|
|
|
procedure TForm1.FormCreate(Sender: TObject);
|
|
begin
|
|
FButton1 := TButtonEx.Create(self);
|
|
FButton1.Parent := self;
|
|
FButton1.Left := 10;
|
|
Fbutton1.Top := 12;
|
|
FButton1.Width := 250;
|
|
FButton1.Caption := 'This is the new multi-line TButtonEx control';
|
|
FButton1.OnClick := @ButtonClick;
|
|
//FButton1.DoubleBuffered := true;
|
|
|
|
cbColorNormalFrom.ButtonColor := FButton1.Colors.ColorNormalFrom;
|
|
cbColorNormalTo.ButtonColor := FButton1.Colors.ColorNormalTo;
|
|
cbColorHotFrom.ButtonColor := FButton1.Colors.ColorHotFrom;
|
|
cbColorHotTo.ButtonColor := FButton1.Colors.ColorHotTo;
|
|
cbColorDisabledFrom.ButtonColor := FButton1.Colors.ColorDisabledFrom;
|
|
cbColorDisabledTo.ButtonColor := FButton1.Colors.ColorDisabledTo;
|
|
cbColorFocusedFrom.ButtonColor := FButton1.Colors.ColorFocusedFrom;
|
|
cbColorFocusedTo.ButtonColor := FButton1.Colors.ColorFocusedTo;
|
|
cbColorDownFrom.ButtonColor := FButton1.Colors.ColorDownFrom;
|
|
cbColorDownTo.ButtonColor := FButton1.Colors.ColorDownTo;
|
|
cbBorderColorNormal.ButtonColor := FButton1.Border.ColorNormal;
|
|
cbBorderColorHot.ButtonColor := FButton1.Border.ColorHot;
|
|
cbBorderColorDisabled.ButtonColor := FButton1.Border.ColorDisabled;
|
|
cbBorderColorFocused.ButtonColor := FButton1.Border.ColorFocused;
|
|
cbBorderColorDown.ButtonColor := FButton1.Border.ColorDown;
|
|
clbFontColorNormal.ButtonColor := ColorToRGB(FButton1.Font.Color);
|
|
clbFontColorDisabled.ButtonColor := ColorToRGB(FButton1.FontDisabled.Color);
|
|
clbFontColorHot.ButtonColor := ColorToRGB(FButton1.FontHot.Color);
|
|
clbFontColorFocused.ButtonColor := ColorToRGB(FButton1.FontFocused.Color);
|
|
clbFontColorDown.ButtonColor := ColorToRGB(FButton1.FontDown.Color);
|
|
|
|
udFontSizeNormal.Position := Screen.SystemFont.Size;
|
|
|
|
seBorderWidthNormal.Value := FButton1.Border.WidthNormal;
|
|
seBorderWidthHot.Value := FButton1.Border.WidthHot;
|
|
seBorderWidthDisabled.Value := FButton1.Border.WidthDisabled;
|
|
seBorderWidthFocused.Value := FButton1.Border.WidthFocused;
|
|
seBorderWidthDown.Value := FButton1.Border.WidthDown;
|
|
|
|
ActiveControl := FButton1;
|
|
end;
|
|
|
|
procedure TForm1.FormShow(Sender: TObject);
|
|
begin
|
|
SpinEdit1.Value := FButton1.Width;
|
|
SpinEdit2.Value := FButton1.Height;
|
|
end;
|
|
|
|
procedure TForm1.seBorderWidthDisabledChange(Sender: TObject);
|
|
begin
|
|
FButton1.Border.WidthDisabled := seBorderWidthDisabled.Value;
|
|
end;
|
|
|
|
procedure TForm1.seBorderWidthDownChange(Sender: TObject);
|
|
begin
|
|
FButton1.Border.WidthDown := seBorderWidthDown.Value;
|
|
end;
|
|
|
|
procedure TForm1.seBorderWidthFocusedChange(Sender: TObject);
|
|
begin
|
|
FButton1.Border.WidthFocused := seBorderWidthFocused.Value;
|
|
end;
|
|
|
|
procedure TForm1.seBorderWidthHotChange(Sender: TObject);
|
|
begin
|
|
FButton1.Border.WidthHot := seBorderWidthHot.Value;
|
|
end;
|
|
|
|
procedure TForm1.seBorderWidthNormalChange(Sender: TObject);
|
|
begin
|
|
FButton1.Border.WidthNormal := seBorderWidthNormal.Value;
|
|
end;
|
|
|
|
procedure TForm1.SpinEdit1Change(Sender: TObject);
|
|
begin
|
|
FButton1.Width := SpinEdit1.Value;
|
|
end;
|
|
|
|
procedure TForm1.SpinEdit1EditingDone(Sender: TObject);
|
|
begin
|
|
FButton1.Width := SpinEdit1.Value;
|
|
end;
|
|
|
|
procedure TForm1.SpinEdit2Change(Sender: TObject);
|
|
begin
|
|
FButton1.Height := SpinEdit2.Value;
|
|
end;
|
|
|
|
procedure TForm1.SpinEdit2EditingDone(Sender: TObject);
|
|
begin
|
|
FButton1.Height := SpinEdit2.Value;
|
|
end;
|
|
|
|
procedure TForm1.udFontSizeNormalClick(Sender: TObject; Button: TUDBtnType);
|
|
begin
|
|
FButton1.Font.Size := udFontSizeNormal.Position;
|
|
end;
|
|
|
|
end.
|
|
|