diff --git a/components/exctrls/examples/ButtonEx/demo.lpi b/components/exctrls/examples/ButtonEx/demo.lpi new file mode 100644 index 000000000..bb86e9bfd --- /dev/null +++ b/components/exctrls/examples/ButtonEx/demo.lpi @@ -0,0 +1,82 @@ + + + + + + + + + + + + <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> diff --git a/components/exctrls/examples/ButtonEx/demo.lpr b/components/exctrls/examples/ButtonEx/demo.lpr new file mode 100644 index 000000000..f03a6981c --- /dev/null +++ b/components/exctrls/examples/ButtonEx/demo.lpr @@ -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. + diff --git a/components/exctrls/examples/ButtonEx/main.lfm b/components/exctrls/examples/ButtonEx/main.lfm new file mode 100644 index 000000000..346b3ca82 --- /dev/null +++ b/components/exctrls/examples/ButtonEx/main.lfm @@ -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 diff --git a/components/exctrls/examples/ButtonEx/main.pas b/components/exctrls/examples/ButtonEx/main.pas new file mode 100644 index 000000000..cafa617de --- /dev/null +++ b/components/exctrls/examples/ButtonEx/main.pas @@ -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. + diff --git a/components/exctrls/examples/ButtonEx/unit2.lfm b/components/exctrls/examples/ButtonEx/unit2.lfm new file mode 100644 index 000000000..37b93f57a --- /dev/null +++ b/components/exctrls/examples/ButtonEx/unit2.lfm @@ -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 diff --git a/components/exctrls/examples/ButtonEx/unit2.pas b/components/exctrls/examples/ButtonEx/unit2.pas new file mode 100644 index 000000000..d4c903fb1 --- /dev/null +++ b/components/exctrls/examples/ButtonEx/unit2.pas @@ -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. +