关于控件的事件函数编写

1.设计时指定事件:使用BCB进行Win32 界面设计,会用到很多的VCL控件,显然会用到很多的事件。在控件的Events双击相应的事件,在头文件中的__published:里面会产生函数声明。但是有时候会出现类型不一致错误。尤其是使用第3方的控件时,比如

TDBGridEh控件的OnDrawColumnCell事件。原因是函数的一个参数是TGridDrawState,存在着2种Gridseh::TGridDrawState和Grid::TGridDrawState,程序本身无法进行区分。这时候就需要人工指定了。将参数指定为Gridseh::TGridDrawState,将函数声明移到private:下。再构造函数进行显性的赋值TDBGridEh->OnDrawColumnCell = DBGridEhDrawColumnCell。完成

2.运行时指定事件:当不了解控件事件参数时,使用Events获取参数的方式,然后再运行时赋值,但是即使这样,有时候也会出现问题,比如 TListBox的OnDrawItem事件,函数参数都没有问题的,但是编译出现错误,很奇怪,原因未知,这时候可以用 ListBox1->OnDrawItem=(TDrawItemEvent)&DoListBoxDrawItem来进行。本来函数名称就是函数的入口地址的,有点画蛇添足的感觉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值