Delphi動態添加菜單


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.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM