unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, ComCtrls;
type
TMainForm = class(TForm)
MainMenu1: TMainMenu;
Button1: TButton;
N0000000001: TMenuItem;
RichEdit1: TRichEdit;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N0000000001Click(Sender: TObject);
private
procedure MyClick(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
subItemName:String;
implementation
{$R *.dfm}
procedure TMainForm.FormCreate(Sender: TObject);
var addSubItem:TMenuItem;
i:Integer;
N:Integer;
SubMenuItemSource:String;
begin
N:=5;
SubMenuItemSource:='動態-';
for i:=0 to N do //N等於要添加的動態菜單數目,需事先定義為數值型變量,並賦值
begin
addSubItem:= TMenuItem.Create(Self);
addSubItem.Name := 'A'+IntToStr(i);
addSubItem.Caption := SubMenuItemSource+IntToStr(i);// 步驟1的SubMenuItemSource應先賦值
//FileOpenItem.Add(addSubItem);//在名稱為FileOpenItem的菜單項下添加子菜單
addSubItem.OnClick:=self.MyClick;//步驟2的MyClick(),自定義菜單要響應的事件
self.MainMenu1.Items.Add(addSubItem);
end
end;
procedure TMainForm.MyClick(Sender: TObject); //動態菜單OnClick事件響應
begin
ShowMessage(TMenuItem(Sender).Caption); //顯示選中的動態菜單標題,
end;
procedure TMainForm.Button1Click(Sender: TObject);
var addSubItem:TMenuItem;
i:Integer;
N:Integer;
SubMenuItemSource:String;
begin
self.MainMenu1.Items[0].OnClick:=nil; //變為無事件
N:=5;
SubMenuItemSource:='KKKKK-';
subItemName:=subItemName+'T';
for i:=0 to N do //N等於要添加的動態菜單數目,需事先定義為數值型變量,並賦值
begin
addSubItem:= TMenuItem.Create(Self);
addSubItem.Name := subItemName+IntToStr(i);
addSubItem.Caption := SubMenuItemSource+IntToStr(i);// 步驟1的SubMenuItemSource應先賦值
//FileOpenItem.Add(addSubItem);//在名稱為FileOpenItem的菜單項下添加子菜單
addSubItem.OnClick:=self.MyClick;//步驟2的MyClick(),自定義菜單要響應的事件
self.MainMenu1.Items[0].Add(addSubItem);
end
end;
procedure TMainForm.N0000000001Click(Sender: TObject);
begin
showmessage('aaa');
end;
end.
