关于自定义对象的析构报错问题!! ( 积分: 100 )

  • 主题发起人 主题发起人 compower
  • 开始时间 开始时间
C

compower

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟设计一个Frame,并动态生成Frame的数组对象,显示在界面上,最后析构。
但执行完以上过程后程序报错:access violation ********
本人的析构方式为:
if Plan_Count<>0 then
begin
for i:=0 to Plan_Count-1 do
PlanFrmArray.Free;
end;
如果不进行析构工作,程序正常,只要执行,程序就可能报错,但不影响程序执行的正确性,结果正常。
请问各位富翁,如何才能解决程序报错的问题?应该如何改进程序?
 
小弟设计一个Frame,并动态生成Frame的数组对象,显示在界面上,最后析构。
但执行完以上过程后程序报错:access violation ********
本人的析构方式为:
if Plan_Count<>0 then
begin
for i:=0 to Plan_Count-1 do
PlanFrmArray.Free;
end;
如果不进行析构工作,程序正常,只要执行,程序就可能报错,但不影响程序执行的正确性,结果正常。
请问各位富翁,如何才能解决程序报错的问题?应该如何改进程序?
 
frame 是如何创建的?如果他的 create(Owner) 的 Owner <> nil 干脆不手工释放的了,delphi 会自动替你释放的。
 
谢谢!
必须要释放,因为此数组是要重复使用的,是一个动态数组,每次用setlength(,)进行定义,所以必须先free掉,而且模块的Name是不能重复的所以在重新使用数组前必须先释放前一次Create的对象。请指教
 
try
except
end;
 
create(nil);
 
后退
顶部