动态生成主窗体菜单,并产生菜单单击事件?

bbs791109 2004-04-27 08:37:22
菜单的name,caption以及单击菜单所要所要打开的窗体名字存在数据库中,怎幺动态生成菜单,并产生菜单单击事件?(要通用的,我不想为每一个菜单都写一个单击事件)
...全文
100 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangcaibin 2004-08-19
  • 打赏
  • 举报
回复
學習
alfsnow 2004-04-27
  • 打赏
  • 举报
回复
我觉得楼上说得很对啊,变通一下什么菜单的问题都可以解决了,楼主到底想怎么呀?
chenminghong 2004-04-27
  • 打赏
  • 举报
回复
up
bbs791109 2004-04-27
  • 打赏
  • 举报
回复
delphi 的高手在何方?
bbs791109 2004-04-27
  • 打赏
  • 举报
回复
謝謝了,不過我要的不是樓上說的那樣說的那麼簡單,我要的是單擊菜單都生成相參應的窗體,窗體名不知道,是存在數據庫中。
insert2003 2004-04-27
  • 打赏
  • 举报
回复
你得改一下,呵呵,参考参考吧!

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;
hch_45 2004-04-27
  • 打赏
  • 举报
回复

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;
henry2003 2004-04-27
  • 打赏
  • 举报
回复
頂一下!
faster18 2004-04-27
  • 打赏
  • 举报
回复
这好实现呀,封装一个类创建窗体,窗体名读取数据库得到
qingke21 2004-04-27
  • 打赏
  • 举报
回复
ding

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧