怎样创建对象数组???(50分)

  • 主题发起人 主题发起人 p2p
  • 开始时间 开始时间
P

p2p

Unregistered / Unconfirmed
GUEST, unregistred user!
我创建了一个TLineObj类,当我要在画板上每画一条直线时就要创建一个对象:
var
Line:TLineObj;
begin
Line:=TLineObj;
end;
为了标识创建的每一条直线,我需要有一个数组来记录每一条直线,于是
Line[1]:TLineObj;(以上是我的假设)
但现在的问题是怎样去定义这个对象数组,或者能用什么办法来解决我的问题?
请教各位大虾!!!拜托!!!


 
可以用TList管理数组。
MyLine=TList.Create;
Line:=TLineObj.Create;
MyLine.Add(Pointer(Line));
...

在使用时,要用强制转换:
for i:=0 to MyLine.Count-1 do
TLineObj(MyLine).x:=i+5;

还要注意要释放TList的元素!(for i:=0 to MyLine.Count-1 do TObject(MyLine).Free
 
var
i: Integer;
Lines: array of TLineObj;
begin
SetLength(Lines, 10);
for i := 0 to 9 do
Lines := TLineObj.Create;
...
// 使用 Lines[7].....
end;
 
同意creation-zy,最好用TList管理对象。
 
对象比记录(或叫结构)的开销大很多,不要怕开内存麻烦。告诉你个方法:
成批分配内存。例:先开十个line 等用完了再开十个。千万不要用一个开一个。
 
后退
顶部