TNotifyEvent自定义消息
2015-03-19 10:48
155 查看
两种不同的事件调用方式: class myTest :public TObject { private: TNotifyEvent Ftime;//事件指针1 protected: void __declspec(dynamic) DoTime();//关联事件 public: myTest(){} void __fastcall ( __closure * ptest)(TObject * Sender);//事件指针2 __published: __property TNotifyEvent OnTime={read=Ftime,write=Ftime};//声明成属性器,方便管理调用 }; void myTest::DoTime()//通过函数过渡一下 { if(Ftime) { Ftime(this); } }调用方法如下:
myTest * p; p = new myTest; p->OnTime = Button4Click;//事件绑定动作(调用方式之一) p->ptest = Form1->Button4Click;//函数绑定指针(调用方式之二) void __fastcall TForm1::Button4Click(TObject *Sender)//事件的真正动作 { ShowMessage("ok"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button5Click(TObject *Sender)//通过另外一个事件来调用我们定义的事件 { p->OnTime(Sender);//定义的事件 p->ptest(Sender); //定义的指针2,相同的效果 } TNotifyEvent的本质是定义一个函数指针,相当于用一个类的成员函数指针调用另一个类的成员函数。关键是使用__closure关键字,否则不能绑定。 编译通不过。TNotifyEvent的定义如下: typedef void __fastcall (__closure *TNotifyEvent)(System::TObject* Sender);
相关文章推荐
- delphi自定义事件处理 TNotifyEvent
- vc++ 自定义消息和WM_NOTIFY消息实现
- EventBus vs Otto vs Guava--自定义消息总线
- arcgis flex viewer3.0|在AppEvent中自定义消息
- MFC 用户自定义消息 自定义notify
- TProcedure,TMethod,TNotifyEvent,TWndMethod的区别,并模拟点击按钮后发生的动作
- 在对自定义消息进一步学习!
- Android中实现自定义XMPP消息包收发
- 自定义输入区更改 Plugin 图片及发送消息
- java中如何自定义消息?
- 融云自定义消息通知栏显示
- vc自定义消息的发送与接收的方法实现
- SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介、创建消息生产者、创建消息消费者、自定义消息通道、分组与持久化、设置 RoutingKey)
- 【Cocos2d-x】C++自定义线程安全消息管理
- WM_NOTIFY消息
- Android 蓝牙通信及自定义消息协议的解析和生成
- 在MFC中添加用户自定义消息
- MFC和win32自定义消息
- JPush自定义消息的集成
- muduo网络库学习之EventLoop(二):进程(线程)wait/notify 和 EventLoop::runInLoop