SysForm.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:4k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit sysform;
  2. interface
  3. uses
  4.   SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs,
  5.   Menus, StdCtrls, AppEvnts;
  6. type
  7.   TForm1 = class(TForm)
  8.     Button1: TButton;
  9.     MainMenu1: TMainMenu;
  10.     File1: TMenuItem;
  11.     Exit1: TMenuItem;
  12.     Edit1: TMenuItem;
  13.     Undo1: TMenuItem;
  14.     N1: TMenuItem;
  15.     Cut1: TMenuItem;
  16.     Copy1: TMenuItem;
  17.     Paste1: TMenuItem;
  18.     Help1: TMenuItem;
  19.     About1: TMenuItem;
  20.     New1: TMenuItem;
  21.     Open1: TMenuItem;
  22.     N2: TMenuItem;
  23.     ApplicationEvents1: TApplicationEvents;
  24.     procedure FormCreate(Sender: TObject);
  25.     procedure Button1Click(Sender: TObject);
  26.     procedure New1Click(Sender: TObject);
  27.     procedure Open1Click(Sender: TObject);
  28.     procedure Exit1Click(Sender: TObject);
  29.     procedure Undo1Click(Sender: TObject);
  30.     procedure Cut1Click(Sender: TObject);
  31.     procedure Copy1Click(Sender: TObject);
  32.     procedure Paste1Click(Sender: TObject);
  33.     procedure About1Click(Sender: TObject);
  34.     procedure ApplicationEvents1Message(var Msg: tagMSG;
  35.       var Handled: Boolean);
  36.   public
  37.     procedure WMSysCommand (var Msg: TWMSysCommand);
  38.       message wm_SysCommand;
  39.   end;
  40. var
  41.   Form1: TForm1;
  42. implementation
  43. {$R *.DFM}
  44. const
  45.   idSysAbout = 100;
  46. procedure TForm1.FormCreate(Sender: TObject);
  47. begin
  48.   // add a separator and a menu item to the system menu
  49.   AppendMenu (GetSystemMenu (Handle, FALSE),
  50.     MF_SEPARATOR, 0, '');
  51.   AppendMenu (GetSystemMenu (Handle, FALSE),
  52.     MF_STRING, idSysAbout, '&About...');
  53.   // add the same items to the application system menu
  54.   AppendMenu (GetSystemMenu (Application.Handle, FALSE),
  55.     MF_SEPARATOR, 0, '');
  56.   AppendMenu (GetSystemMenu (Application.Handle, FALSE),
  57.     MF_STRING, idSysAbout, '&About...');
  58. end;
  59. procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  60.   var Handled: Boolean);
  61. begin
  62.   if (Msg.Message = wm_SysCommand) and
  63.     (Msg.wParam = idSysAbout) then
  64.   begin
  65.     ShowMessage ('Mastering Delphi: SysMenu2 example');
  66.     Handled := True;
  67.   end;
  68. end;
  69. procedure TForm1.WMSysCommand (var Msg: TWMSysCommand);
  70. var
  71.   Item: TMenuItem;
  72. begin
  73.   // handle a specific command
  74.   if Msg.CmdType = idSysAbout then
  75.     ShowMessage ('Mastering Delphi: SysMenu2 example');
  76.   // activate standard menu handling code
  77.   Item := MainMenu1.FindItem (Msg.CmdType, fkCommand);
  78.   if not (Item = nil) then
  79.     Item.Click;
  80.   // default system menu commands
  81.   inherited;
  82. end;
  83. procedure TForm1.Button1Click(Sender: TObject);
  84. var
  85.   I: Integer;
  86. begin
  87.   // add a separator
  88.   AppendMenu (GetSystemMenu (Handle, FALSE), MF_SEPARATOR, 0, '');
  89.   // add the main menu to the system menu
  90.   with MainMenu1 do
  91.     for I := 0 to Items.Count - 1 do
  92.       AppendMenu (GetSystemMenu (Self.Handle, FALSE),
  93.         mf_Popup, Items[I].Handle, PChar (Items[I].Caption));
  94.   // disable the button
  95.   Button1.Enabled := False;
  96. end;
  97. procedure TForm1.New1Click(Sender: TObject);
  98. begin
  99.   ShowMessage ('File New menu command');
  100. end;
  101. procedure TForm1.Open1Click(Sender: TObject);
  102. begin
  103.   ShowMessage ('File Open menu command');
  104. end;
  105. procedure TForm1.Exit1Click(Sender: TObject);
  106. begin
  107.   Close;
  108. end;
  109. procedure TForm1.Undo1Click(Sender: TObject);
  110. begin
  111.   ShowMessage ('Edit Undo menu command');
  112. end;
  113. procedure TForm1.Cut1Click(Sender: TObject);
  114. begin
  115.   ShowMessage ('Edit Cut menu command');
  116. end;
  117. procedure TForm1.Copy1Click(Sender: TObject);
  118. begin
  119.   ShowMessage ('Edit Copy menu command');
  120. end;
  121. procedure TForm1.Paste1Click(Sender: TObject);
  122. begin
  123.   ShowMessage ('Edit Paste menu command');
  124. end;
  125. procedure TForm1.About1Click(Sender: TObject);
  126. begin
  127.     ShowMessage ('Mastering Delphi: SysMenu2 example');
  128. end;
  129. end.