初学问题,怎样让事件指向自定义的函数?

xiatianyun 2003-02-28 10:50:52
例如,在Delphi中是这样的:
Application.OnHint :=MyHintFunction;
在C++Builder中应该用到函数指针,请问应该如何实现?
...全文
29 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiu_allan 2003-03-05
  • 打赏
  • 举报
回复
“__fastcall”前面的确是两个“_”
qiu_allan 2003-03-05
  • 打赏
  • 举报
回复
错误信息是什么??
xiatianyun 2003-03-05
  • 打赏
  • 举报
回复
up
Jim3 2003-03-04
  • 打赏
  • 举报
回复
错误信息是...............

xiatianyun 2003-03-03
  • 打赏
  • 举报
回复
for maxchou:
不至于吧
函数体已经定义了的,我没有粘贴上。
xiatianyun 2003-03-01
  • 打赏
  • 举报
回复
开始我是这么做的,但编译提示出错。
longchaohui 2003-03-01
  • 打赏
  • 举报
回复
同上!

要不把你定义的函数和要连接的事件上传来看!
叶子哟 2003-03-01
  • 打赏
  • 举报
回复
agree up
Jim3 2003-03-01
  • 打赏
  • 举报
回复
什么错误,不是这个引起的吧
xiatianyun 2003-03-01
  • 打赏
  • 举报
回复
up
MAX°孟兆 2003-03-01
  • 打赏
  • 举报
回复
你的_fastcall 好像应该是__fastcall 吧,
少了一个_

而且你的
DisplyaHint(TObject *Sender)
还没有函数体
wangxiangsjz 2003-03-01
  • 打赏
  • 举报
回复
没有错呀,Win2000+BCB6.
xiatianyun 2003-03-01
  • 打赏
  • 举报
回复

我的代码:
public:
void _fastcall DisplayHint(TObject *Sender);
...
void _fastcall TForm1::Formcreate(TObject *Sender)
{
Application->OnHint=Form1->DisplayHint;
}
出错

勉励前行 2003-03-01
  • 打赏
  • 举报
回复
void __fastcall myClick(TObject * Sender);
這種定義會出錯。
所有的事件指針都是__closure指針,也就是一個指向類的方法的指針,而不是指向一個C函數的指針,你把你的函數隨意封裝在一個class中就行了,封裝在TForm中也行。如:
class TEV_Click
{
public :
void __fastcall myClick(TObject * Sender);
};
TEV_Click *pClickEV ;
Button1->Click = pClickEV->myClick ;

cdws222 2003-03-01
  • 打赏
  • 举报
回复
=
Jim3 2003-02-28
  • 打赏
  • 举报
回复
也是一样的
Button1->Click = myClick;

void __fastcall myClick(TObject * Sender)
{
//add your code
}

13,874

社区成员

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

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