在应用着一个控件时,在本人自行定义的事件中写入代码,我又怎么能够知道该段代码何时可以被执行呢?
最好有一个简单明了的小例子!!!谢谢!!!
敬请不吝赐教!!!
先行谢礼了!!!
5 个解决方案
#1
关注!
#2
我也想知道...
#3
关键只要明白,BCB中,事件是函数指针,而且它也是属性.
比如做一个计数器.
...
...
private:
int Fnumber;
TNotifyEvent FAfterCountChange;
public:
void Inc();
__published:
__property TNotifyEvent AfterCountChange=
{read=FAfterCountChange,write=FAfterCountChange};
....
...
....
void TMyCounter::Inc()
{
Fount++;
if(AfterCountChange)AfterCountChange(this);//必须先判断后调用.
}
--------------------------------------
其中TNotifyEvent其实就是VCL自己定义的一个函数指针.
typedef void __fastcall (__closure *TNotifyEvent)(System::TObject* Sender);
比如做一个计数器.
...
...
private:
int Fnumber;
TNotifyEvent FAfterCountChange;
public:
void Inc();
__published:
__property TNotifyEvent AfterCountChange=
{read=FAfterCountChange,write=FAfterCountChange};
....
...
....
void TMyCounter::Inc()
{
Fount++;
if(AfterCountChange)AfterCountChange(this);//必须先判断后调用.
}
--------------------------------------
其中TNotifyEvent其实就是VCL自己定义的一个函数指针.
typedef void __fastcall (__closure *TNotifyEvent)(System::TObject* Sender);
#4
哦,上面Inc() 中第一句 Fount++ ;为 Fnumber++;
#5
如果自定义的事件是对应于响应Windows 的消息的,那就在该消息的处理事件中调用你的自定义事件的函数。例子在VCL 源中有很多,自己看一下。
#1
关注!
#2
我也想知道...
#3
关键只要明白,BCB中,事件是函数指针,而且它也是属性.
比如做一个计数器.
...
...
private:
int Fnumber;
TNotifyEvent FAfterCountChange;
public:
void Inc();
__published:
__property TNotifyEvent AfterCountChange=
{read=FAfterCountChange,write=FAfterCountChange};
....
...
....
void TMyCounter::Inc()
{
Fount++;
if(AfterCountChange)AfterCountChange(this);//必须先判断后调用.
}
--------------------------------------
其中TNotifyEvent其实就是VCL自己定义的一个函数指针.
typedef void __fastcall (__closure *TNotifyEvent)(System::TObject* Sender);
比如做一个计数器.
...
...
private:
int Fnumber;
TNotifyEvent FAfterCountChange;
public:
void Inc();
__published:
__property TNotifyEvent AfterCountChange=
{read=FAfterCountChange,write=FAfterCountChange};
....
...
....
void TMyCounter::Inc()
{
Fount++;
if(AfterCountChange)AfterCountChange(this);//必须先判断后调用.
}
--------------------------------------
其中TNotifyEvent其实就是VCL自己定义的一个函数指针.
typedef void __fastcall (__closure *TNotifyEvent)(System::TObject* Sender);
#4
哦,上面Inc() 中第一句 Fount++ ;为 Fnumber++;
#5
如果自定义的事件是对应于响应Windows 的消息的,那就在该消息的处理事件中调用你的自定义事件的函数。例子在VCL 源中有很多,自己看一下。