关于RTTI:如何对控件的方法赋值

windindance 2002-03-19 01:14:46
加精
#include <typinfo.hpp>

{
for (int i=0; i<ControlCount; i++)
{
if (IsPublishedProp(Controls[i], "OnKeyPress"))
// how do it ?
//SetPropValue(Controls[i], "OnKeyPress", ControlKeyPress);//不行
//我想应该是用SetMethodProp,但不知怎样用。
}
}
...全文
65 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyzguan 2002-03-19
  • 打赏
  • 举报
回复
Gz
柯本 2002-03-19
  • 打赏
  • 举报
回复
很对!在新的C++ 标准中:
test == &test
kingcaiyao 2002-03-19
  • 打赏
  • 举报
回复
keiy,你好,我觉得你定的代码中,有点想问一你下,我觉得:
p.Code=(void*)test,即可。因为函数名本身就是地址,你的意见呢?
柯本 2002-03-19
  • 打赏
  • 举报
回复
void test()
{
ShowMessage("OK");
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{

System::TMethod __fastcall p;

p.Code=(void *)&test;
p.Data=NULL;
for (int i=0; i<ControlCount; i++)
{
if (IsPublishedProp(Controls[i], "OnKeyPress"))
{
// p=GetMethodProp(Controls[i], "OnKeyPress");
SetMethodProp(Controls[i], "OnKeyPress",p);
}
}
}

p.Code 可是一个指向函数的指针
p.Date 不知为何用

13,825

社区成员

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

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