是这样的type
Tdata0 = Class
a:array[1..1000000] of integer;
end;type
Tdata = Class
d:Tdata0;
end;
Tdata的一个对象 data 作为一个表单的成员(form1.data),在表单创建事就创建该类。在表单注销时就 Free掉。
form1.data的成员d也在TData创建时创建。但我发觉关闭表单时(不是退出程序),form1.data.a并未释放掉。请问如何释放呢?听说一句很常见的原则,谁创建谁释放,那么,data.a应该有Tdata来释放,我重载了Tdata的Free函数,在这个函数中释放,但报错。请问该如何办?
Tdata0 = Class
a:array[1..1000000] of integer;
end;type
Tdata = Class
d:Tdata0;
end;
Tdata的一个对象 data 作为一个表单的成员(form1.data),在表单创建事就创建该类。在表单注销时就 Free掉。
form1.data的成员d也在TData创建时创建。但我发觉关闭表单时(不是退出程序),form1.data.a并未释放掉。请问如何释放呢?听说一句很常见的原则,谁创建谁释放,那么,data.a应该有Tdata来释放,我重载了Tdata的Free函数,在这个函数中释放,但报错。请问该如何办?
a:array[1..1000000] of integer; 有系统管理,自动释放的
我的意思是 d:Tdata0 未被释放。自然那个数组就不能被释放了。
怎样释放 d:Tdata0 的问题,是不是释放了 form1.data , d:Tdata0就自动释放了。
begin
self.d.Destroy;
inherited Destroy;
end;怎样就OK了。谢谢。