窗体继承时的有关问题,大家帮个小忙啊
窗体继承时的问题,大家帮个小忙啊。我做了一个子窗体基类。FormA在这个FormA的FormDestroy事件中写了Delphi(
窗体继承时的问题,大家帮个小忙啊。
我做了一个子窗体基类。FormA
在这个FormA的FormDestroy事件中写了
Delphi(Pascal) codeFormA := nil;
上面明显是错误的。。
新建一个窗体FormB继承FormA,关闭FormB,结果执行的却是
Delphi(Pascal) codeFormA : nil;
请问基窗体的FormDestroy事件要怎么写?
写成
Delphi(Pascal) codeSelf := nil;
吗?显然不行啊。。。。
[解决办法]self.free
FreeAndNil(self) ?
[解决办法]窗口跟组件一样,继承释构
[解决办法]TMyClass = class(TObject)
destructor Destroy;override;
end;
var aa:TMyClass;
begin
aa:=TMyClass.Create;
....
FreeAndNil(aa);
end;
// 以上,不需要释放TObject,因为TObject被TMyClass继承。
// 分配的时候由aa涵盖,所以,我以为,基类不需要去释放(包括ivf 的窗体)
[解决办法]什么都不用写!
[解决办法]inherited
[解决办法]析构函数自己会生成
[解决办法]不用在销毁事件中写,即使写,也不要指定绝对的对象,比如FormA,那样所有子窗体都会去销毁FormA,对于模态窗体可以在Onclose事件中写Action:=caFree,
[解决办法]一般用 Action:=Free就可以了