Marco Web Center |
Home: Code Repository: Mastering Delphi 5Project SYSMENU2
Project StructureSYSMENU2.DPRprogram Sysmenu2; uses Forms, sysform in 'sysform.pas' {Form1}; {$R *.RES} begin Application.CreateForm(TForm1, Form1); Application.Run; end. SYSFORM.PASunit sysform; interface uses SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, AppEvnts; type TForm1 = class(TForm) Button1: TButton; MainMenu1: TMainMenu; File1: TMenuItem; Exit1: TMenuItem; Edit1: TMenuItem; Undo1: TMenuItem; N1: TMenuItem; Cut1: TMenuItem; Copy1: TMenuItem; Paste1: TMenuItem; Help1: TMenuItem; About1: TMenuItem; New1: TMenuItem; Open1: TMenuItem; N2: TMenuItem; ApplicationEvents1: TApplicationEvents; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure New1Click(Sender: TObject); procedure Open1Click(Sender: TObject); procedure Exit1Click(Sender: TObject); procedure Undo1Click(Sender: TObject); procedure Cut1Click(Sender: TObject); procedure Copy1Click(Sender: TObject); procedure Paste1Click(Sender: TObject); procedure About1Click(Sender: TObject); procedure ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); public procedure WMSysCommand (var Msg: TWMSysCommand); message wm_SysCommand; end; var Form1: TForm1; implementation {$R *.DFM} const idSysAbout = 100; procedure TForm1.FormCreate(Sender: TObject); begin // add a separator and a menu item to the system menu AppendMenu (GetSystemMenu (Handle, FALSE), MF_SEPARATOR, 0, ''); AppendMenu (GetSystemMenu (Handle, FALSE), MF_STRING, idSysAbout, '&About...'); // add the same items to the application system menu AppendMenu (GetSystemMenu (Application.Handle, FALSE), MF_SEPARATOR, 0, ''); AppendMenu (GetSystemMenu (Application.Handle, FALSE), MF_STRING, idSysAbout, '&About...'); end; procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); begin if (Msg.Message = wm_SysCommand) and (Msg.wParam = idSysAbout) then begin ShowMessage ('Mastering Delphi: SysMenu2 example'); Handled := True; end; end; procedure TForm1.WMSysCommand (var Msg: TWMSysCommand); var Item: TMenuItem; begin // handle a specific command if Msg.CmdType = idSysAbout then ShowMessage ('Mastering Delphi: SysMenu2 example'); // activate standard menu handling code Item := MainMenu1.FindItem (Msg.CmdType, fkCommand); if not (Item = nil) then Item.Click; // default system menu commands inherited; end; procedure TForm1.Button1Click(Sender: TObject); var I: Integer; begin // add a separator AppendMenu (GetSystemMenu (Handle, FALSE), MF_SEPARATOR, 0, ''); // add the main menu to the system menu with MainMenu1 do for I := 0 to Items.Count - 1 do AppendMenu (GetSystemMenu (Self.Handle, FALSE), mf_Popup, Items[I].Handle, PChar (Items[I].Caption)); // disable the button Button1.Enabled := False; end; procedure TForm1.New1Click(Sender: TObject); begin ShowMessage ('File New menu command'); end; procedure TForm1.Open1Click(Sender: TObject); begin ShowMessage ('File Open menu command'); end; procedure TForm1.Exit1Click(Sender: TObject); begin Close; end; procedure TForm1.Undo1Click(Sender: TObject); begin ShowMessage ('Edit Undo menu command'); end; procedure TForm1.Cut1Click(Sender: TObject); begin ShowMessage ('Edit Cut menu command'); end; procedure TForm1.Copy1Click(Sender: TObject); begin ShowMessage ('Edit Copy menu command'); end; procedure TForm1.Paste1Click(Sender: TObject); begin ShowMessage ('Edit Paste menu command'); end; procedure TForm1.About1Click(Sender: TObject); begin ShowMessage ('Mastering Delphi: SysMenu2 example'); end; end. SYSFORM.DFMobject Form1: TForm1 Left = 245 Top = 138 Width = 292 Height = 119 Caption = 'SysMenu' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = True OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object Button1: TButton Left = 78 Top = 34 Width = 129 Height = 25 Caption = 'Copy to System Menu' TabOrder = 0 OnClick = Button1Click end object MainMenu1: TMainMenu Left = 16 Top = 8 object File1: TMenuItem Caption = '&File' object New1: TMenuItem Caption = '&New' OnClick = New1Click end object Open1: TMenuItem Caption = '&Open...' OnClick = Open1Click end object N2: TMenuItem Caption = '-' end object Exit1: TMenuItem Caption = '&Exit' OnClick = Exit1Click end end object Edit1: TMenuItem Caption = '&Edit' object Undo1: TMenuItem Caption = '&Undo' OnClick = Undo1Click end object N1: TMenuItem Caption = '-' end object Cut1: TMenuItem Caption = 'Cu&t' OnClick = Cut1Click end object Copy1: TMenuItem Caption = '&Copy' OnClick = Copy1Click end object Paste1: TMenuItem Caption = '&Paste' OnClick = Paste1Click end end object Help1: TMenuItem Caption = 'Help' object About1: TMenuItem Caption = '&About...' OnClick = About1Click end end end object ApplicationEvents1: TApplicationEvents OnMessage = ApplicationEvents1Message Left = 16 Top = 48 end end
|
||
© Copyright Marco Cantù, 1995-2020, All rights reserved |