读书人

再问控件封装到DLL中的有关问题

发布时间: 2012-03-31 13:13:26 作者: rapoo

再问控件封装到DLL中的问题
控件封装到DLL中,原来控件的事件怎么处理呢?比如TIdTCPServer1控件的事件:
void __fastcall TForm::IdTCPServer1Execute(TIdPeerThread *AThread);//这是窗口程序中的声明,在DLL怎么声明呢?


[解决办法]
VCL组件的事件处理函数,必须是一个类成员函数,你自己定义一个类,然后在其中加入一个成员函数,形如:
void __fastcall IdTCPServer1Execute(TIdPeerThread *AThread);

然后创建一个自定义类的对象,再将TIdTCPServer控件的OnExecute事件指向这个对象的IdTCPServer1Execute方法就行了。
[解决办法]
void __fastcall myIdTCPServer1Execute(TIdPeerThread *AThread);

给控件赋值
this->IdTCPServer1->OnExecute =myIdTCPServer1Execute;

读书人网 >C++ Builder

热点推荐