spkToolbar: Update Actions demo to show the new TMenuButton. Patch by Husker (https://forum.lazarus.freepascal.org/index.php/topic,51552.msg379413.html#msg379413).

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7732 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz 2020-10-02 21:04:51 +00:00
parent 4c1488174c
commit a7c30e362e
2 changed files with 78 additions and 1 deletions

View File

@ -3,7 +3,7 @@ object Form1: TForm1
Height = 304 Height = 304
Top = 248 Top = 248
Width = 501 Width = 501
Caption = 'Form1' Caption = 'TSpkToolbar demo'
ClientHeight = 284 ClientHeight = 284
ClientWidth = 501 ClientWidth = 501
Menu = MainMenu Menu = MainMenu
@ -123,6 +123,41 @@ object Form1: TForm1
ParentColor = False ParentColor = False
ParentFont = False ParentFont = False
end end
object btnToggleMenuButton: TButton
Left = 25
Height = 25
Top = 48
Width = 225
Caption = 'Toggle Menu Button'
OnClick = btnToggleMenuButtonClick
TabOrder = 0
end
object BtnToggleMenuButtonDropdownArrow: TButton
Left = 26
Height = 25
Top = 80
Width = 223
Caption = 'Toggle Menu Button dropdown arrow'
OnClick = BtnToggleMenuButtonDropdownArrowClick
TabOrder = 1
end
object Label2: TLabel
Left = 25
Height = 15
Top = 124
Width = 113
Caption = 'Menu button caption'
ParentColor = False
end
object edMenuButtonCaption: TEdit
Left = 149
Height = 23
Top = 120
Width = 100
OnEditingDone = edMenuButtonCaptionEditingDone
TabOrder = 2
Text = 'edMenuButtonCaption'
end
end end
object SpkToolbar1: TSpkToolbar object SpkToolbar1: TSpkToolbar
Left = 0 Left = 0
@ -170,6 +205,10 @@ object Form1: TForm1
TabIndex = 3 TabIndex = 3
Images = ImageList Images = ImageList
LargeImages = LargeImageList LargeImages = LargeImageList
MenuButtonCaption = 'Menu'
MenuButtonDropdownMenu = StyleMenu
ShowMenuButton = True
OnMenuButtonClick = SpkToolbar1MenuButtonClick
Tabs = ( Tabs = (
'SpkTab1' 'SpkTab1'
'SpkTab2' 'SpkTab2'

View File

@ -32,8 +32,12 @@ type
AcEditCopy: TEditCopy; AcEditCopy: TEditCopy;
AcEditCut: TEditCut; AcEditCut: TEditCut;
AcEditPaste: TEditPaste; AcEditPaste: TEditPaste;
btnToggleMenuButton: TButton;
BtnToggleMenuButtonDropdownArrow: TButton;
edMenuButtonCaption: TEdit;
ImageList: TImageList; ImageList: TImageList;
Label1: TLabel; Label1: TLabel;
Label2: TLabel;
LargeImageList: TImageList; LargeImageList: TImageList;
MainMenu: TMainMenu; MainMenu: TMainMenu;
MenuItem1: TMenuItem; MenuItem1: TMenuItem;
@ -134,11 +138,15 @@ type
procedure AcSaveExecute(Sender: TObject); procedure AcSaveExecute(Sender: TObject);
procedure AcSaveNowExecute(Sender: TObject); procedure AcSaveNowExecute(Sender: TObject);
procedure AcUnderlineExecute(Sender: TObject); procedure AcUnderlineExecute(Sender: TObject);
procedure btnToggleMenuButtonClick(Sender: TObject);
procedure BtnToggleMenuButtonDropdownArrowClick(Sender: TObject);
procedure edMenuButtonCaptionEditingDone(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure ShowMoreOptionsButtonCheckboxClick(Sender: TObject); procedure ShowMoreOptionsButtonCheckboxClick(Sender: TObject);
procedure SpkPane2MoreOptionsButtonClick(Sender: TObject); procedure SpkPane2MoreOptionsButtonClick(Sender: TObject);
procedure SpkPane6MoreOptionsButtonClick(Sender: TObject); procedure SpkPane6MoreOptionsButtonClick(Sender: TObject);
procedure SpkToolbar1MenuButtonClick(Sender: TObject);
procedure StyleMenuClick(Sender: TObject); procedure StyleMenuClick(Sender: TObject);
private private
{ private declarations } { private declarations }
@ -255,6 +263,24 @@ begin
Label1.Caption := '"Underline" clicked'; Label1.Caption := '"Underline" clicked';
end; end;
procedure TForm1.btnToggleMenuButtonClick(Sender: TObject);
begin
SpkToolbar1.ShowMenuButton := not SpkToolbar1.ShowMenuButton;
end;
procedure TForm1.BtnToggleMenuButtonDropdownArrowClick(Sender: TObject);
begin
if SpkToolbar1.MenuButtonStyle = mbsCaption then
SpkToolbar1.MenuButtonStyle := mbsCaptionDropdown
else
SpkToolbar1.MenuButtonStyle := mbsCaption;
end;
procedure TForm1.edMenuButtonCaptionEditingDone(Sender: TObject);
begin
SpkToolbar1.MenuButtonCaption := edMenuButtonCaption.Text;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: boolean); procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: boolean);
begin begin
if CanClose then if CanClose then
@ -272,6 +298,7 @@ begin
SetUserInterface(true); SetUserInterface(true);
Label1.Caption := ''; Label1.Caption := '';
LoadFromIni; LoadFromIni;
edMenuButtonCaption.Text := SpkToolbar1.MenuButtonCaption;
end; end;
procedure TForm1.ShowMoreOptionsButtonCheckboxClick(Sender: TObject); procedure TForm1.ShowMoreOptionsButtonCheckboxClick(Sender: TObject);
@ -290,6 +317,11 @@ begin
ShowMessage('You clicked the ''More options'' button of the "User interface" pane.'); ShowMessage('You clicked the ''More options'' button of the "User interface" pane.');
end; end;
procedure TForm1.SpkToolbar1MenuButtonClick(Sender: TObject);
begin
ShowMessage('You clicked on Menu Button.');
end;
procedure TForm1.LoadFromIni; procedure TForm1.LoadFromIni;
var var
ini: TCustomIniFile; ini: TCustomIniFile;
@ -301,6 +333,9 @@ begin
SetStyle(SpkToolbar1.Style); SetStyle(SpkToolbar1.Style);
ShowMoreOptionsButtonCheckbox.Checked := ini.ReadBool('MainForm', 'ShowMoreOptionsButton', false); ShowMoreOptionsButtonCheckbox.Checked := ini.ReadBool('MainForm', 'ShowMoreOptionsButton', false);
ShowMoreOptionsButtonCheckboxClick(nil); ShowMoreOptionsButtonCheckboxClick(nil);
SpkToolbar1.ShowMenuButton := ini.ReadBool('MainForm', 'ShowMenuButton', false);
SpkToolbar1.MenuButtonStyle := TSpkMenubuttonStyle(ini.ReadInteger('MainForm', 'MenuButtonStyle', 0));
SpkToolbar1.MenuButtonCaption := ini.ReadString('MainForm', 'MenuButtonCaption', 'Menu');
finally finally
ini.Free; ini.Free;
end; end;
@ -337,6 +372,9 @@ begin
ini.WriteBool('MainForm', 'RibbonInterface', AcRibbonGUI.Checked); ini.WriteBool('MainForm', 'RibbonInterface', AcRibbonGUI.Checked);
ini.WriteInteger('MainForm', 'RibbonStyle', ord(SpkToolbar1.Style)); ini.WriteInteger('MainForm', 'RibbonStyle', ord(SpkToolbar1.Style));
ini.WriteBool('MainForm', 'ShowMoreOptionsButton', ShowMoreOptionsButtonCheckbox.Checked); ini.WriteBool('MainForm', 'ShowMoreOptionsButton', ShowMoreOptionsButtonCheckbox.Checked);
ini.WriteBool('MainForm', 'ShowMenuButton', SpkToolbar1.ShowMenuButton);
ini.WriteInteger('MainForm', 'MenuButtonStyle', ord(SpkToolbar1.MenuButtonStyle));
ini.WriteString('MainForm', 'MenuButtonCaption', SpkToolbar1.MenuButtonCaption);
finally finally
ini.Free; ini.Free;
end; end;