Y
yap
Unregistered / Unconfirmed
GUEST, unregistred user!
请先看下面这段代码
TMyObject = class
private
ID: Integer;
Name: string;
public
procedure SetID(Value: Integer);
procedure SetName(Value: string);
……
end;
procedure …
var
MyObject: TMyObject;
begin
MyObject:=TMyObject.Create;
…
MyObjectList.Add(MyObject)
//MyObjectList:TObjectList;是一个全局变量。
…
MyObject.Free;
end;
当我在其他地方调用MyObjectList时,出错。察看VCL源代码发现TObjectList
其实保有的是MyObject的类指针。MyObject过早的释放导致了引用错误。
我知道只要把MyObject声明为全局变量就可以解决这样的问题,但这大概
不是一个好的办法。我有很多个这样的不同实例要加到MyObjectList中,不知道
各位大虾是如何较好得解决这问题的。
TMyObject = class
private
ID: Integer;
Name: string;
public
procedure SetID(Value: Integer);
procedure SetName(Value: string);
……
end;
procedure …
var
MyObject: TMyObject;
begin
MyObject:=TMyObject.Create;
…
MyObjectList.Add(MyObject)
//MyObjectList:TObjectList;是一个全局变量。
…
MyObject.Free;
end;
当我在其他地方调用MyObjectList时,出错。察看VCL源代码发现TObjectList
其实保有的是MyObject的类指针。MyObject过早的释放导致了引用错误。
我知道只要把MyObject声明为全局变量就可以解决这样的问题,但这大概
不是一个好的办法。我有很多个这样的不同实例要加到MyObjectList中,不知道
各位大虾是如何较好得解决这问题的。