运行效果图:

快捷键设置控件: THotKey [2] - 自定义菜单快捷键
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    HotKey1: THotKey;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    procedure MsgMenu(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses Menus; {本例无须在窗体上添加 TMainMenu; 是动态建立菜单的}

var
  MyMenu: TMainMenu;
  Item: TMenuItem;

{让各菜单调用的测试过程}
procedure TForm1.MsgMenu(Sender: TObject);
begin
  if Sender is TMenuItem then
    ShowMessage(TMenuItem(Sender).Caption);
end;

{动态建立菜单}
procedure TForm1.FormCreate(Sender: TObject);
begin
  MyMenu := TMainMenu.Create(Self);
  Self.Menu := MyMenu;

  Item := TMenuItem.Create(MyMenu);
  Item.Caption := 'TestMenu';
  MyMenu.Items.Add(Item);


  Item := TMenuItem.Create(MyMenu);
  Item.Caption := 'Menu-1';
  Item.OnClick := MsgMenu;
  MyMenu.Items[0].Add(Item);

  Item := TMenuItem.Create(MyMenu);
  Item.Caption := 'Menu-2';
  Item.OnClick := MsgMenu;
  MyMenu.Items[0].Add(Item);

  Item := TMenuItem.Create(MyMenu);
  Item.Caption := 'Menu-3';
  Item.OnClick := MsgMenu;
  MyMenu.Items[0].Add(Item);

  Button1.Caption := '设置给第一个子菜单';
  Button2.Caption := '设置给第二个子菜单';
  Button3.Caption := '设置给第三个子菜单';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Self.Menu.Items[0][0].ShortCut := HotKey1.HotKey;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Self.Menu.Items[0][1].ShortCut := HotKey1.HotKey;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Self.Menu.Items[0][2].ShortCut := HotKey1.HotKey;
end;

end.

关于动态建立菜单的相关内容在这: http://www.cnblogs.com/del/category/122010.html

相关文章:

  • 2021-11-24
  • 2022-12-23
  • 2021-12-20
  • 2021-05-08
  • 2022-12-23
  • 2022-12-23
  • 2021-10-01
  • 2021-11-17
猜你喜欢
  • 2022-12-23
  • 2022-01-21
  • 2021-12-14
  • 2022-12-23
  • 2021-10-29
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案