窗体继承时的问题,大家帮个小忙啊。
我做了一个子窗体基类。FormA
在这个FormA的FormDestroy事件中写了
- Delphi(Pascal) code
FormA := nil;
上面明显是错误的。。
新建一个窗体FormB继承FormA,关闭FormB,结果执行的却是
- Delphi(Pascal) code
FormA : nil;
请问基窗体的FormDestroy事件要怎么写?
写成
- Delphi(Pascal) code
Self := 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就可以了