Delphi中如何将响应TWinControl的OnResize事件
有一个类,其中一个成员是FContainer:TWinControl,保持对外界某一个控件的引用,需要响应这个FContainer成员的OnResize事件。问题是OnR...
有一个类,其中一个成员是FContainer: TWinControl ,保持对外界某一个控件的引用,需要响应这个FContainer成员的OnResize事件。
问题是 OnResize 事件对TWinControl来说是 protected 属性的,无法获取到。
如果要是用判断 FContainer 的具体类型方法
if FContainer is TForm then
.....
else if FContainer is TPanel then
....
else if FContainer is XXX then
....
end;
是没有办法穷举的,可能FContainer引用的是一个自定义的从TControl集成下来的对象呢。
这种情况如何才能优雅的获得 FContainer.OnResize 事件的响应呢。
要给这个OnResize事件赋值。如何赋值呢。
TWinControl是Delphi中的类,难道要改Delphi的代码吗?
去改TControl的代码当然可以了,问题这不是解决方法啊。TControl是Delphi的代码,把代码给别人的时候总不能把TControl.pas带着吧。 展开
问题是 OnResize 事件对TWinControl来说是 protected 属性的,无法获取到。
如果要是用判断 FContainer 的具体类型方法
if FContainer is TForm then
.....
else if FContainer is TPanel then
....
else if FContainer is XXX then
....
end;
是没有办法穷举的,可能FContainer引用的是一个自定义的从TControl集成下来的对象呢。
这种情况如何才能优雅的获得 FContainer.OnResize 事件的响应呢。
要给这个OnResize事件赋值。如何赋值呢。
TWinControl是Delphi中的类,难道要改Delphi的代码吗?
去改TControl的代码当然可以了,问题这不是解决方法啊。TControl是Delphi的代码,把代码给别人的时候总不能把TControl.pas带着吧。 展开
展开全部
没看明白,你是要把事件公开出来,还是要去捕获消息呢?
如果是第1个,就直接把事件public就行了,第2个,就覆盖WndProc然后捕获消息
glaciersoft 说的是一个办法。另外LZ的OOP看来很不咋样啊,给你个小例子吧
TParent = class
protect
FMyEvent: TNotifyEvent;
property OnMyEvent: TNotifyEvent read FMyEvent write FMyEvent;
end;
TChild = class(TParent)
public
property OnMyEvent;
end;
这下LZ该知道怎么做了吧。其实都是DELPHI里现成代码,多看看VCL的代码就知知道了
晕,谁让你去改VCL代码了!这么简单个问题都还不明白,加我吧563 85 501,这30分挣得可真不容易
如果是第1个,就直接把事件public就行了,第2个,就覆盖WndProc然后捕获消息
glaciersoft 说的是一个办法。另外LZ的OOP看来很不咋样啊,给你个小例子吧
TParent = class
protect
FMyEvent: TNotifyEvent;
property OnMyEvent: TNotifyEvent read FMyEvent write FMyEvent;
end;
TChild = class(TParent)
public
property OnMyEvent;
end;
这下LZ该知道怎么做了吧。其实都是DELPHI里现成代码,多看看VCL的代码就知知道了
晕,谁让你去改VCL代码了!这么简单个问题都还不明白,加我吧563 85 501,这30分挣得可真不容易
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询