高手请进!关于动态事件的声明!

maxtry 2000-07-30 08:35:00
现在有个问题:
菜单上的菜单项是动态加上或删除的,不同的菜单项做不同的事情,
怎样才能在NEW一个菜单项同时声明她的Click事件。
请指教!
...全文
165 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
halfdream 2000-08-02
  • 打赏
  • 举报
回复
哦,呵呵,SORRY,我说得不清楚。
peng_hui和Wingsun 都是对的。
另外, 通不过编译? 错误信息是什么?
Wingsun 2000-08-01
  • 打赏
  • 举报
回复
在运行时动态生成的菜单
TMenuItem * NewMenu=new TMenuItem(PopupMenu1);
NewMenu->Caption=ocDocument->ObjectVerbs->Strings[i];
NewMenu->OnClick=VerbClick;
PopupMenu1->Items->Add(NewMenu);
void __fastcall TFrmMain::VerbClick(TObject *Sender)
{
......
}
peng_hui 2000-08-01
  • 打赏
  • 举报
回复
先按照MenuItem的OnClick事件声明一个自定义的函数,如:
void __fastcall TForm1::myFunction(TObject *Sender)
{
...
}
然后在程序中动态生成菜单项:
TMenuItem *item = new TMenuItem(this);
item->OnClick = myFunction;
wxz 2000-08-01
  • 打赏
  • 举报
回复
事件处理函数应声明在该菜单所属窗口类中,最好先拖1个TActionList控件到窗体上,双击这个TActionList编辑相应的TActionList成员,然后把相关成员的OnExecute事件赋给增加的菜单项
另,事件声明格式如下:

void __fastcall 窗体类名::函数名(TObject *Sender);
maxtry 2000-07-31
  • 打赏
  • 举报
回复
To halfdream:

事件处理函数应在那里和怎样声明,定义呢?
翻了一下资料,发现看不懂。

还有你的‘方便方法’,使用MENU控件生成处理函数N1Click后,
直接赋给 TMenuItem的OnClick通不过编译。

能详细说一下吗?
谢谢!
halfdream 2000-07-30
  • 打赏
  • 举报
回复
很容易的,直接将你的事件处理函数赋给 TMenuItem的OnClick就行了。
因为OnClick事件是这样声明的:
TNotifyEvent OnClick;
你的事件处理函数也要同TNotifyEvent 类型一致。
方便的办法是 使用MENU控件生成一个处理函数,然后再删除那控件就行了。

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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