自己创建控件,是从TTcpClient继承下来的,不知如何重载OnConnect事件?

wz_hzb 2008-07-09 05:00:35
自己创建控件,是从TTcpClient继承下来的,不知如何重载OnConnect事件,自加的两个属性是可以了.以下是代码,请高手指点
class PACKAGE MyTcpClient : public TTcpClient
{
private:
protected:
public:
__fastcall MyTcpClient(TComponent* Owner);
int wwork;
int wwait;
__published:
__property int work = {read=wwork,write=wwork};
__property int wait = {read=wwait,write=wwait};
};
在哪个地方实现代码?
...全文
44 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wz_hzb 2008-07-10
  • 打赏
  • 举报
回复
首先感谢两位的回答,
to akirya
class PACKAGE MyTcpClient : public TTcpClient
{
private:
protected:
public:
__fastcall MyTcpClient(TComponent* Owner);
__property TSocketNotifyEvent OnConnect = {read=FOnConnect, write=FOnConnect};
TSocketNotifyEvent FOnConnect; <--这行错误 E2109 Not an allowed type
};

把这行移一下就可以了
class PACKAGE MyTcpClient : public TTcpClient
{
private:
protected:
TSocketNotifyEvent FOnConnect; <--这行移到这里
public:
__fastcall MyTcpClient(TComponent* Owner);
__property TSocketNotifyEvent OnConnect = {read=FOnConnect, write=FOnConnect};
};
但是OnConnect的函数实现部分怎么写呀,我不知道
我是在MyTcpClient.cpp里这样写的,但编译通不过
void __fastcall MyTcpClient::FOnConnect()
{
TTcpClient::Connect();
//加入自己要写的代码
}
  • 打赏
  • 举报
回复
TSocketNotifyEvent OnConnect 这不是已经有了么?

你只需要写一个函数对FOnConnect这个函数指针赋值就能响应了。
VCL使用的方法是Delphi的。和C++的虚函数有些区别
  • 打赏
  • 举报
回复

class PACKAGE MyTcpClient : public TTcpClient
{
private:
protected:
public:
__fastcall MyTcpClient(TComponent* Owner);
__property TSocketNotifyEvent OnConnect = {read=FOnConnect, write=FOnConnect};
TSocketNotifyEvent FOnConnect;
};
  • 打赏
  • 举报
回复
直接在类声明内写上OnConnect的函数声明
class PACKAGE MyTcpClient : public TTcpClient
{
private:
protected:
public:
__fastcall MyTcpClient(TComponent* Owner);
int wwork;
int wwait;
.. OnConnect( ... );//参数返回值和基类相同
__published:
__property int work = {read=wwork,write=wwork};
__property int wait = {read=wwait,write=wwait};
};

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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