我定义了一个TobjectList对象,在一个循环中把一个类加入到Tobjectlist中,每次添加的类相同但是类的属性的值不相同,但是结果是对象类表中的类的属性值都是最后一次加入的类的属性值。
var
i:integer;
ObjList:Tobjectlist;
def_Class:TDef;//自定义的类
begin
objlist:=Tobjectlist.create;
def_Class:=TDef.create;
for i:=0 to 10 do
begin
def_class.MID:=i
def_class.Mname:='name'+inttostr(i);
objlist.add(def_class);
//结果是加入了10个def_class,但是每个的属性值都是
//def_class.MID:=10
//def_class.Mname=name10
//这是为什么,应该怎么做才行?
end;end;
var
i:integer;
ObjList:Tobjectlist;
def_Class:TDef;//自定义的类
begin
objlist:=Tobjectlist.create;
def_Class:=TDef.create;
for i:=0 to 10 do
begin
def_class.MID:=i
def_class.Mname:='name'+inttostr(i);
objlist.add(def_class);
//结果是加入了10个def_class,但是每个的属性值都是
//def_class.MID:=10
//def_class.Mname=name10
//这是为什么,应该怎么做才行?
end;end;
你每次执行这个过程的时候都是
objlist:=Tobjectlist.create;
def_Class:=TDef.create;创建新的这个对象的 所以以前添加的数据就没有了啊
呵呵 元旦了 元旦快乐...
i:integer;
ObjList:Tobjectlist;
def_Class:TDef;//自定义的类
begin
objlist:=Tobjectlist.create;
for i:=0 to 10 do
begin
def_Class:=TDef.create;
def_class.MID:=i
def_class.Mname:='name'+inttostr(i);
objlist.add(def_class);
end;