动态生成主窗体菜单,并产生菜单单击事件? 菜单的name,caption以及单击菜单所要所要打开的窗体名字存在数据库中,怎幺动态生成菜单,并产生菜单单击事件?(要通用的,我不想为每一个菜单都写一个单击事件) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如 private { Private declarations } procedure MenuClick(Sender: TObject);procedure TForm1.Button2Click(Sender: TObject);var Menu1:TMenuItem;begin Menu1 := TMenuItem.Create(Self); Menu1.Name := 'MFile'; Menu1.Caption := '&File'; MainMenu1.Items.Add(Menu1); //Create some menu items at File's menu Menu1 := TMenuItem.Create(Self); Menu1.Name := 'MShow'; Menu1.Caption := '&Show'; Menu1.OnClick := MenuClick; MainMenu1.Items[0].Add(Menu1); Menu1 := TMenuItem.Create(Self); Menu1.Name := 'MExit'; Menu1.Caption := '&Exit'; Menu1.OnClick := MenuClick; MainMenu1.Items[0].Add(Menu1);end;procedure TForm1.MenuClick(Sender: TObject);begin if TMenuItem(Sender).Name = 'MShow' then begin ShowMessage('Hello Menu'); end else if TMenuItem(Sender).Name = 'MExit' then begin Close; end;end; 你得改一下,呵呵,参考参考吧!type ....... procedure AddWindowsMenu(MenuCap: string; bEnabled: boolean); procedure AddMenuClick(Sender: TObject);procedure TForm1.AddWindowsMenu(MenuCap: string; bEnabled: boolean);var NewItem: TMenuItem;begin NewItem := TMenuItem.Create(Self); NewItem.Caption:='NewMenuCaption'; //你数据库里的Caption NewItem.Enabled:= bEnabled; Form1.MenuGroup.Add(NewItem); NewItem.OnClick:= AddMenuClick;end;procedure TForm1.AddMenuClick(Sender: TObject);//动态菜单点击事件begin with Sender as TMenuItem do begin ShowMessage(Caption); //模拟事件处理 end;end;procedure TForm1.Button1Click(Sender: TObject); //调用....begin AddWindowsMenu('NewItem',True);end; delphi怎么了 如何手动建立ActiveX控件? ★★★專家分終于到了12萬分!★★★ stringgrid隔行显示不同颜色的问题,怎么把字都盖住了? QQ大秘密 一个简单的出勤系统需要多少钱? 从数据库批量导出图片到EXCEL模板,生成上岗证 字符串的问题??????? 我的一个管理软件,生成的EXE有8.71M,这算不算大,是不是特别占内存? 求助!!!!delphi用ADO连接数据库时,密码或用户等出错,直接退出程序??为何? 有没有办法在一个基类FORM中用RegisterClass注册这个FORM,然后所有继承这个FROM的FROM都会自己注册? 删除文件夹问题?
private
{ Private declarations }
procedure MenuClick(Sender: TObject);procedure TForm1.Button2Click(Sender: TObject);
var
Menu1:TMenuItem;
begin
Menu1 := TMenuItem.Create(Self);
Menu1.Name := 'MFile';
Menu1.Caption := '&File';
MainMenu1.Items.Add(Menu1); //Create some menu items at File's menu
Menu1 := TMenuItem.Create(Self);
Menu1.Name := 'MShow';
Menu1.Caption := '&Show';
Menu1.OnClick := MenuClick;
MainMenu1.Items[0].Add(Menu1); Menu1 := TMenuItem.Create(Self);
Menu1.Name := 'MExit';
Menu1.Caption := '&Exit';
Menu1.OnClick := MenuClick;
MainMenu1.Items[0].Add(Menu1);
end;
procedure TForm1.MenuClick(Sender: TObject);
begin
if TMenuItem(Sender).Name = 'MShow' then
begin
ShowMessage('Hello Menu');
end
else if TMenuItem(Sender).Name = 'MExit' then
begin
Close;
end;
end;
.......
procedure AddWindowsMenu(MenuCap: string; bEnabled: boolean);
procedure AddMenuClick(Sender: TObject);
procedure TForm1.AddWindowsMenu(MenuCap: string; bEnabled: boolean);
var
NewItem: TMenuItem;
begin
NewItem := TMenuItem.Create(Self);
NewItem.Caption:='NewMenuCaption'; //你数据库里的Caption
NewItem.Enabled:= bEnabled;
Form1.MenuGroup.Add(NewItem);
NewItem.OnClick:= AddMenuClick;
end;procedure TForm1.AddMenuClick(Sender: TObject);
//动态菜单点击事件
begin
with Sender as TMenuItem do
begin
ShowMessage(Caption); //模拟事件处理
end;
end;procedure TForm1.Button1Click(Sender: TObject); //调用....
begin
AddWindowsMenu('NewItem',True);
end;