自己写控件,才知道做控件有一个麻烦.DELPHI好象没有C#那样可以新增加一个控件事件.例如:我的一个自定义控件要在父窗体的OnClose时做一些处理,根据某些条件使父窗体不给关闭.这样,控件中可以这样做:procedure TMyControl.Create(Aowner:TComponent)
begin OldParentFormClose:=Aowner.Onclose;
Aowner.Onclose:=SelfHandle;
end;procedure SelfHandle(Sender: TObject;var Action: TCloseAction);
begin
.... //自己的代码
if assigned(OldParentFormClose) then
OldParentFormClose(sender,action);
end;
看看上面的代码:
1.如果我这个控件要用到很多处父窗体的事件时,类似上面的代码都要写一大堆.
2.我做的自定义控件,如果放一个在窗体上,没有问题.但放多个这样的控件在窗体上时,父窗体发生OnClose时,应该如何使每个控件都能正常执行到它自身的SelfHandle??C#在事件处理方面得很简单呀,它用事件的+=就OK了.DELPHI能不能做到这个呢???
begin OldParentFormClose:=Aowner.Onclose;
Aowner.Onclose:=SelfHandle;
end;procedure SelfHandle(Sender: TObject;var Action: TCloseAction);
begin
.... //自己的代码
if assigned(OldParentFormClose) then
OldParentFormClose(sender,action);
end;
看看上面的代码:
1.如果我这个控件要用到很多处父窗体的事件时,类似上面的代码都要写一大堆.
2.我做的自定义控件,如果放一个在窗体上,没有问题.但放多个这样的控件在窗体上时,父窗体发生OnClose时,应该如何使每个控件都能正常执行到它自身的SelfHandle??C#在事件处理方面得很简单呀,它用事件的+=就OK了.DELPHI能不能做到这个呢???
解决方案 »
- 线程与进程之间的通讯
- 实现转动的小球用什么技术比较好呢?opengl?dx?
- 让fastreport指定打印机
- 【400分】在ListView中添加背景图片,实现XP的资源管理器前景图的效果,解决后再开贴给分!!
- 如何使ValueListEditor1其中的某几行变颜色,谢谢
- 请问如何在 Win2000下列出当前运行的所有程序的完整路径,而不仅仅是文件名?
- 哪位知道银行的用户信息数据是怎么管理的?
- 请问怎样实现多种数据库间的数据互导??
- Delphi6的安装问题
- 谁有 TdxBarControl/TdxBarSubMenuControl系列控件?急需!!!
- 编一个CHM类型的程序。需要什么知识
- 关于excel文件中的数据怎么批量追加到ACCESS数据库中啊?
procedute TMyVCL.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
检查,看是否允许退出在执行父窗体的OnCloseQueryend;用自己的 父窗体.OnCloseQuery:=Self.FormCloseQuery;