delphi freenotification的用法
时间:2015-01-27 19:29 来源: 我爱IT技术网 作者:小搜
TComponent.freeNotification只在组件开发是比较有用,简单介绍一下它的用途
假设有两个组件
lbl : TLabel
pm : TPopupMenu
其中的lbl.popupmenu=pm
在界面设计时,如果你删除了pm对象,那么lbl.popupmenu并不会自动清空,它还指向着已经不存在了的pm,这样会造成设计时出错。所以在为lbl.popupmenu属性赋值的时候就需要执行一下pm.freeNotification(lbl),这样在pm释放的时候会找到所有"订阅"过freeNotification的对象,并依次执行这些对象的Notification方法。
当日你还得在TLabel的notification方法中实现清理popupmenu的功能
下面是一段范例代码
TLabel.notification(AComponent : TComponent; operation : TOperation)
begin
if (AComponent = fPopupMenu) and (operation = opRemove) then
fPopupmenu := nil;
end;
这样就没问题了
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
