青
青云
Unregistered / Unconfirmed
GUEST, unregistred user!
我做了一个控件,
控件里动态创建了一个 FPanel;
在控件的 onCreate 事件里设置
FPanel:=TPanel.Create(nil);
在控件的 onDestroy 事件里设置
if Assigned(FPanel) then
FreeAndNil(FPanel);
结果控件所在窗体关闭的时候就报错。
原因是 FreeAndNil(FPanel); 这句话导致的。
我就纳闷:
这样控制好了,系统好像不应该报错吧:
if Assigned(FPanel) then
FreeAndNil(FPanel);
因为 如果能够确认 Assigned(FPanel) =true
那么就必然可以执行 FreeAndNil(FPanel);
难道这种写法存在危险?
真不知道怎样写才安全。
控件里动态创建了一个 FPanel;
在控件的 onCreate 事件里设置
FPanel:=TPanel.Create(nil);
在控件的 onDestroy 事件里设置
if Assigned(FPanel) then
FreeAndNil(FPanel);
结果控件所在窗体关闭的时候就报错。
原因是 FreeAndNil(FPanel); 这句话导致的。
我就纳闷:
这样控制好了,系统好像不应该报错吧:
if Assigned(FPanel) then
FreeAndNil(FPanel);
因为 如果能够确认 Assigned(FPanel) =true
那么就必然可以执行 FreeAndNil(FPanel);
难道这种写法存在危险?
真不知道怎样写才安全。