ExCtrls: Add ButtonEx demo

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7485 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2020-06-16 17:48:06 +00:00
parent 3a143abf8c
commit 5479062d57
6 changed files with 1351 additions and 0 deletions

View File

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="12"/>
<PathDelim Value="\"/>
<General>
<Flags>
<CompatibilityMode Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<Title Value="demo"/>
<Scaled Value="True"/>
<ResourceType Value="res"/>
<XPManifest>
<DpiAware Value="True"/>
</XPManifest>
<Icon Value="0"/>
</General>
<BuildModes Count="1">
<Item1 Name="Default" Default="True"/>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
<UseFileFilters Value="True"/>
</PublishOptions>
<RunParams>
<FormatVersion Value="2"/>
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="ExCtrlsPkg"/>
</Item1>
<Item2>
<PackageName Value="LCL"/>
</Item2>
</RequiredPackages>
<Units Count="3">
<Unit0>
<Filename Value="demo.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="main.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="Form1"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
</Unit1>
<Unit2>
<Filename Value="unit2.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="Form2"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
</Unit2>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="demo"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>

View File

@ -0,0 +1,26 @@
program demo;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
{$IFDEF HASAMIGA}
athreads,
{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, main, unit2
{ you can add units after this };
{$R *.res}
begin
RequireDerivedFormResource:=True;
Application.Scaled:=True;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.Run;
end.

View File

@ -0,0 +1,777 @@
object Form1: TForm1
Left = 353
Height = 294
Top = 130
Width = 838
Caption = 'Form1'
ClientHeight = 294
ClientWidth = 838
OnCreate = FormCreate
OnShow = FormShow
LCLVersion = '2.1.0.0'
object Button1: TButton
Left = 160
Height = 25
Top = 61
Width = 75
Caption = 'TButton'
ModalResult = 11
OnClick = ButtonClick
TabOrder = 0
end
object GroupBox1: TGroupBox
Left = 304
Height = 267
Top = 12
Width = 520
Caption = 'TButtonEx Appearance'
ClientHeight = 247
ClientWidth = 516
TabOrder = 6
object cbColorNormalFrom: TColorButton
AnchorSideTop.Control = Label6
AnchorSideTop.Side = asrBottom
Left = 88
Height = 25
Top = 26
Width = 65
BorderSpacing.Top = 3
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'From'
Margin = 4
OnColorChanged = cbColorNormalFromToChanged
end
object cbColorNormalTo: TColorButton
AnchorSideLeft.Control = cbColorNormalFrom
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cbColorNormalFrom
Left = 157
Height = 25
Top = 26
Width = 65
BorderSpacing.Left = 4
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'To'
Margin = 4
OnColorChanged = cbColorNormalFromToChanged
end
object Label1: TLabel
AnchorSideTop.Control = cbColorNormalFrom
AnchorSideTop.Side = asrCenter
Left = 18
Height = 15
Top = 31
Width = 40
Caption = 'Normal'
ParentColor = False
end
object Label2: TLabel
AnchorSideTop.Control = cbColorHotFrom
AnchorSideTop.Side = asrCenter
Left = 18
Height = 15
Top = 60
Width = 20
Caption = 'Hot'
ParentColor = False
end
object Label3: TLabel
AnchorSideTop.Control = cbColorDisabledFrom
AnchorSideTop.Side = asrCenter
Left = 18
Height = 15
Top = 89
Width = 45
Caption = 'Disabled'
ParentColor = False
end
object Label4: TLabel
AnchorSideTop.Control = cbColorFocusedFrom
AnchorSideTop.Side = asrCenter
Left = 18
Height = 15
Top = 118
Width = 44
Caption = 'Focused'
ParentColor = False
end
object cbColorHotFrom: TColorButton
AnchorSideLeft.Control = cbColorNormalFrom
AnchorSideTop.Control = cbColorNormalFrom
AnchorSideTop.Side = asrBottom
Left = 88
Height = 25
Top = 55
Width = 65
BorderSpacing.Top = 4
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'From'
Margin = 4
OnColorChanged = cbColorHotFromToChanged
end
object cbColorHotTo: TColorButton
AnchorSideLeft.Control = cbColorNormalTo
AnchorSideTop.Control = cbColorHotFrom
Left = 157
Height = 25
Top = 55
Width = 65
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'To'
Margin = 4
OnColorChanged = cbColorHotFromToChanged
end
object cbColorDisabledFrom: TColorButton
AnchorSideLeft.Control = cbColorNormalFrom
AnchorSideTop.Control = cbColorHotFrom
AnchorSideTop.Side = asrBottom
Left = 88
Height = 25
Top = 84
Width = 65
BorderSpacing.Top = 4
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'From'
Margin = 4
OnColorChanged = cbColorDisabledFromToChanged
end
object cbColorDisabledTo: TColorButton
AnchorSideLeft.Control = cbColorNormalTo
AnchorSideTop.Control = cbColorDisabledFrom
Left = 157
Height = 25
Top = 84
Width = 65
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'To'
Margin = 4
OnColorChanged = cbColorDisabledFromToChanged
end
object cbColorFocusedFrom: TColorButton
AnchorSideLeft.Control = cbColorNormalFrom
AnchorSideTop.Control = cbColorDisabledFrom
AnchorSideTop.Side = asrBottom
Left = 88
Height = 25
Top = 113
Width = 65
BorderSpacing.Top = 4
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'From'
Margin = 4
OnColorChanged = cbColorFocusedFromToChanged
end
object cbColorFocusedTo: TColorButton
AnchorSideLeft.Control = cbColorNormalTo
AnchorSideTop.Control = cbColorFocusedFrom
Left = 157
Height = 25
Top = 113
Width = 65
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'To'
Margin = 4
OnColorChanged = cbColorFocusedFromToChanged
end
object Label5: TLabel
AnchorSideTop.Control = cbColorDownFrom
AnchorSideTop.Side = asrCenter
Left = 18
Height = 15
Top = 147
Width = 31
Caption = 'Down'
ParentColor = False
end
object cbColorDownFrom: TColorButton
AnchorSideLeft.Control = cbColorNormalFrom
AnchorSideTop.Control = cbColorFocusedFrom
AnchorSideTop.Side = asrBottom
Left = 88
Height = 25
Top = 142
Width = 65
BorderSpacing.Top = 4
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'From'
Margin = 4
OnColorChanged = cbColorDownFromToChanged
end
object cbColorDownTo: TColorButton
AnchorSideLeft.Control = cbColorNormalTo
AnchorSideTop.Control = cbColorDownFrom
Left = 157
Height = 25
Top = 142
Width = 65
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'To'
Margin = 4
OnColorChanged = cbColorDownFromToChanged
end
object Label6: TLabel
AnchorSideTop.Control = GroupBox1
Left = 88
Height = 15
Top = 8
Width = 111
BorderSpacing.Top = 8
Caption = 'Background gradient'
ParentColor = False
end
object cbBorderColorNormal: TColorButton
AnchorSideLeft.Control = cbColorNormalTo
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cbColorNormalFrom
Left = 238
Height = 25
Top = 26
Width = 65
BorderSpacing.Left = 16
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'Color'
Margin = 4
OnColorChanged = cbColorNormalFromToChanged
end
object cbBorderColorHot: TColorButton
AnchorSideLeft.Control = cbColorNormalTo
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cbBorderColorNormal
AnchorSideTop.Side = asrBottom
Left = 238
Height = 25
Top = 55
Width = 65
BorderSpacing.Left = 16
BorderSpacing.Top = 4
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'Color'
Margin = 4
OnColorChanged = cbColorHotFromToChanged
end
object cbBorderColorDisabled: TColorButton
AnchorSideLeft.Control = cbColorNormalTo
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cbBorderColorHot
AnchorSideTop.Side = asrBottom
Left = 238
Height = 25
Top = 84
Width = 65
BorderSpacing.Left = 16
BorderSpacing.Top = 4
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'Color'
Margin = 4
OnColorChanged = cbColorDisabledFromToChanged
end
object cbBorderColorFocused: TColorButton
AnchorSideLeft.Control = cbColorNormalTo
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cbBorderColorDisabled
AnchorSideTop.Side = asrBottom
Left = 238
Height = 25
Top = 113
Width = 65
BorderSpacing.Left = 16
BorderSpacing.Top = 4
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'Color'
Margin = 4
OnColorChanged = cbColorFocusedFromToChanged
end
object cbBorderColorDown: TColorButton
AnchorSideLeft.Control = cbColorNormalTo
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cbBorderColorFocused
AnchorSideTop.Side = asrBottom
Left = 238
Height = 25
Top = 142
Width = 65
BorderSpacing.Left = 16
BorderSpacing.Top = 4
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'Color'
Margin = 4
OnColorChanged = cbColorDownFromToChanged
end
object Label7: TLabel
AnchorSideTop.Control = Label6
Left = 238
Height = 15
Top = 10
Width = 35
BorderSpacing.Top = 2
Caption = 'Border'
ParentColor = False
end
object seBorderWidthNormal: TSpinEdit
AnchorSideLeft.Control = cbBorderColorNormal
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cbColorNormalFrom
AnchorSideTop.Side = asrCenter
Left = 319
Height = 23
Top = 27
Width = 45
Alignment = taRightJustify
BorderSpacing.Left = 16
OnChange = seBorderWidthNormalChange
TabOrder = 1
end
object Label8: TLabel
AnchorSideTop.Control = Label6
Left = 319
Height = 15
Top = 10
Width = 32
BorderSpacing.Top = 2
Caption = 'Width'
ParentColor = False
end
object seBorderWidthHot: TSpinEdit
AnchorSideLeft.Control = cbBorderColorNormal
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cbColorHotTo
AnchorSideTop.Side = asrCenter
Left = 319
Height = 23
Top = 56
Width = 45
Alignment = taRightJustify
BorderSpacing.Left = 16
OnChange = seBorderWidthHotChange
TabOrder = 2
end
object seBorderWidthDisabled: TSpinEdit
AnchorSideLeft.Control = cbBorderColorNormal
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cbColorDisabledFrom
AnchorSideTop.Side = asrCenter
Left = 319
Height = 23
Top = 85
Width = 45
Alignment = taRightJustify
BorderSpacing.Left = 16
OnChange = seBorderWidthDisabledChange
TabOrder = 3
end
object seBorderWidthFocused: TSpinEdit
AnchorSideLeft.Control = cbBorderColorNormal
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cbColorFocusedFrom
AnchorSideTop.Side = asrCenter
Left = 319
Height = 23
Top = 114
Width = 45
Alignment = taRightJustify
BorderSpacing.Left = 16
OnChange = seBorderWidthFocusedChange
TabOrder = 4
end
object seBorderWidthDown: TSpinEdit
AnchorSideLeft.Control = cbBorderColorNormal
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cbColorDownFrom
AnchorSideTop.Side = asrCenter
Left = 319
Height = 23
Top = 143
Width = 45
Alignment = taRightJustify
BorderSpacing.Left = 16
OnChange = seBorderWidthDownChange
TabOrder = 5
end
object clbFontColorNormal: TColorButton
AnchorSideLeft.Control = seBorderWidthHot
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cbColorNormalFrom
Left = 380
Height = 25
Top = 26
Width = 65
BorderSpacing.Left = 16
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'Font'
Margin = 4
OnColorChanged = cbColorNormalFromToChanged
end
object clbFontColorHot: TColorButton
AnchorSideLeft.Control = clbFontColorNormal
AnchorSideTop.Control = clbFontColorNormal
AnchorSideTop.Side = asrBottom
Left = 380
Height = 25
Top = 55
Width = 65
BorderSpacing.Top = 4
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'Font'
Margin = 4
OnColorChanged = cbColorHotFromToChanged
end
object clbFontColorDisabled: TColorButton
AnchorSideLeft.Control = clbFontColorNormal
AnchorSideTop.Control = clbFontColorHot
AnchorSideTop.Side = asrBottom
Left = 380
Height = 25
Top = 84
Width = 65
BorderSpacing.Top = 4
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'Font'
Margin = 4
OnColorChanged = cbColorDisabledFromToChanged
end
object clbFontColorFocused: TColorButton
AnchorSideLeft.Control = clbFontColorNormal
AnchorSideTop.Control = clbFontColorDisabled
AnchorSideTop.Side = asrBottom
Left = 380
Height = 25
Top = 113
Width = 65
BorderSpacing.Top = 4
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'Font'
Margin = 4
OnColorChanged = cbColorFocusedFromToChanged
end
object clbFontColorDown: TColorButton
AnchorSideLeft.Control = clbFontColorNormal
AnchorSideTop.Control = clbFontColorFocused
AnchorSideTop.Side = asrBottom
Left = 380
Height = 25
Top = 142
Width = 65
BorderSpacing.Top = 4
BorderWidth = 2
ButtonColorAutoSize = False
ButtonColorSize = 16
ButtonColor = clBlack
Caption = 'Font'
Margin = 4
OnColorChanged = cbColorDownFromToChanged
end
object Label9: TLabel
AnchorSideTop.Control = Label6
Left = 380
Height = 15
Top = 10
Width = 24
BorderSpacing.Top = 2
Caption = 'Font'
ParentColor = False
end
object cbGradient: TCheckBox
Left = 88
Height = 19
Top = 176
Width = 65
Caption = 'Gradient'
Checked = True
OnChange = cbGradientChange
State = cbChecked
TabOrder = 11
end
object cbShowFocusRect: TCheckBox
Left = 241
Height = 19
Top = 176
Width = 106
Caption = 'Show FocusRect'
Checked = True
OnChange = cbShowFocusRectChange
State = cbChecked
TabOrder = 12
end
object cbFontNormalBold: TCheckBox
AnchorSideLeft.Control = udFontSizeNormal
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = clbFontColorNormal
AnchorSideTop.Side = asrCenter
Left = 470
Height = 19
Top = 29
Width = 44
BorderSpacing.Left = 8
Caption = 'Bold'
OnChange = cbFontBoldChange
TabOrder = 6
end
object cbFontHotBold: TCheckBox
AnchorSideLeft.Control = clbFontColorNormal
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cbColorHotFrom
AnchorSideTop.Side = asrCenter
Left = 453
Height = 19
Top = 58
Width = 44
BorderSpacing.Left = 8
Caption = 'Bold'
OnChange = cbFontBoldChange
TabOrder = 7
end
object cbFontDisabledBold: TCheckBox
AnchorSideLeft.Control = clbFontColorNormal
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cbColorDisabledFrom
AnchorSideTop.Side = asrCenter
Left = 453
Height = 19
Top = 87
Width = 44
BorderSpacing.Left = 8
Caption = 'Bold'
OnChange = cbFontBoldChange
TabOrder = 8
end
object cbFontFocusedBold: TCheckBox
AnchorSideLeft.Control = clbFontColorNormal
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cbColorFocusedFrom
AnchorSideTop.Side = asrCenter
Left = 453
Height = 19
Top = 116
Width = 44
BorderSpacing.Left = 8
Caption = 'Bold'
OnChange = cbFontBoldChange
TabOrder = 9
end
object cbFontDownBold: TCheckBox
AnchorSideLeft.Control = clbFontColorNormal
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cbColorDownFrom
AnchorSideTop.Side = asrCenter
Left = 453
Height = 19
Top = 145
Width = 44
BorderSpacing.Left = 8
Caption = 'Bold'
OnChange = cbFontBoldChange
TabOrder = 10
end
object Label10: TLabel
AnchorSideTop.Control = cmbAlignment
AnchorSideTop.Side = asrCenter
Left = 13
Height = 15
Top = 212
Width = 56
Caption = 'Alignment'
ParentColor = False
end
object cmbAlignment: TComboBox
AnchorSideLeft.Control = cbColorDownFrom
AnchorSideTop.Control = cbColorDownFrom
AnchorSideTop.Side = asrBottom
Left = 88
Height = 23
Top = 208
Width = 137
Anchors = []
BorderSpacing.Top = 8
ItemHeight = 15
ItemIndex = 2
Items.Strings = (
'taLeftJustify'
'taRightJustify'
'taCenter'
)
OnChange = cmbAlignmentChange
Style = csDropDownList
TabOrder = 14
Text = 'taCenter'
end
object cbDefaultDrawing: TCheckBox
AnchorSideTop.Control = GroupBox1
AnchorSideRight.Control = GroupBox1
AnchorSideRight.Side = asrBottom
Left = 396
Height = 19
Top = -16
Width = 104
Alignment = taLeftJustify
Anchors = [akRight]
BorderSpacing.Right = 16
Caption = 'Default drawing'
Checked = True
OnChange = cbDefaultDrawingChange
State = cbChecked
TabOrder = 0
end
object cbWordWrap: TCheckBox
Left = 384
Height = 19
Top = 176
Width = 77
Caption = 'WordWrap'
OnChange = cbWordWrapChange
TabOrder = 13
end
object udFontSizeNormal: TUpDown
AnchorSideLeft.Control = clbFontColorNormal
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = clbFontColorNormal
AnchorSideBottom.Control = cbColorNormalFrom
AnchorSideBottom.Side = asrBottom
Left = 445
Height = 25
Top = 26
Width = 17
Anchors = [akTop, akLeft, akBottom]
Max = 20
Min = 5
OnClick = udFontSizeNormalClick
Position = 5
TabOrder = 15
end
end
object cbEnabled: TCheckBox
Left = 160
Height = 19
Top = 95
Width = 62
Caption = 'Enabled'
Checked = True
OnChange = cbEnabledChange
State = cbChecked
TabOrder = 1
end
object Memo1: TMemo
Left = 8
Height = 187
Top = 61
Width = 136
Lines.Strings = (
'Memo1'
)
ScrollBars = ssAutoVertical
TabOrder = 7
end
object Button2: TButton
Left = 8
Height = 25
Top = 254
Width = 99
AutoSize = True
Caption = 'Test 2nd form'
OnClick = Button2Click
TabOrder = 5
end
object cbAutoSize: TCheckBox
Left = 160
Height = 19
Top = 119
Width = 66
Caption = 'AutoSize'
OnChange = cbAutoSizeChange
TabOrder = 2
end
object SpinEdit1: TSpinEdit
Left = 160
Height = 23
Top = 167
Width = 80
MaxValue = 500
OnChange = SpinEdit1Change
OnEditingDone = SpinEdit1EditingDone
TabOrder = 3
Value = 100
end
object Label11: TLabel
Left = 162
Height = 15
Top = 149
Width = 32
Caption = 'Width'
ParentColor = False
end
object Label12: TLabel
Left = 162
Height = 15
Top = 207
Width = 36
Caption = 'Height'
ParentColor = False
end
object SpinEdit2: TSpinEdit
Left = 160
Height = 23
Top = 225
Width = 80
MaxValue = 300
OnChange = SpinEdit2Change
OnEditingDone = SpinEdit2EditingDone
TabOrder = 4
Value = 100
end
end

View File

@ -0,0 +1,389 @@
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;
Label10: 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.

View File

@ -0,0 +1,19 @@
object Form2: TForm2
Left = 670
Height = 128
Top = 218
Width = 298
Caption = 'Form2'
ClientHeight = 128
ClientWidth = 298
OnCreate = FormCreate
LCLVersion = '2.1.0.0'
object Label1: TLabel
Left = 19
Height = 15
Top = 16
Width = 212
Caption = 'Testing ModalResult, Default and Cancel'
ParentColor = False
end
end

View File

@ -0,0 +1,58 @@
unit unit2;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExButtons;
type
{ TForm2 }
TForm2 = class(TForm)
Label1: TLabel;
procedure FormCreate(Sender: TObject);
private
OKBtn: TButtonEx;
CancelBtn: TButtonEx;
public
end;
var
Form2: TForm2;
implementation
{$R *.lfm}
{ TForm2 }
procedure TForm2.FormCreate(Sender: TObject);
begin
OKBtn := TButtonEx.Create(nil);
OKBtn.Parent := self;
OKBtn.Top := Label1.Top + Label1.Height + 16;
OKBtn.Left := 16;
//OKBtn.AutoSize := true;
OKBtn.Caption := 'OK';
OKBtn.Default := true;
OKBtn.ModalResult := mrOK;
OKBtn.DefaultDrawing := false;
CancelBtn := TButtonEx.Create(nil);
CancelBtn.Parent := self;
CancelBtn.Top := OKBtn.Top;
CancelBtn.Left := 100;
//CancelBtn.AutoSize := true;
CancelBtn.Caption := 'Cancel';
CancelBtn.Cancel := true;
CancelBtn.ModalResult := mrCancel;
CancelBtn.DefaultDrawing := false;
end;
end.