各位大哥救命,小M头疼了几天的问题,谢谢!(TstringList与对象操作的问题)
我做了一个程序,其中的一部分是要把对象的记录存到列表中,我使用的列表是TStringList,当我用记录类型(record)做的时候能正常运行,程序代码如下:
type
PIDName=^TIDName;
TIDName=record;
ID:string;
Name:string;
end;
procedure createA;
var :
MyList:TstringList;
Data:PIDName;
i:integer;
begin
new (Data)
Data^ID:=IntToStr(1);
Data^Name:='黎明';
MyList.AddObject(Data^Name,Pointer(Data));
new (Data)
Data^ID:=IntToStr(2);
Data^Name:='刘德华';
MyList.Move(1,0);
MyList.AddObject(Data^Name,Pointer(Data));
for i:=0 to MyList.cout-1 do
showmessage(PIDName(MyList.Object[i])^.ID);
end;
但是我把记录类型换成对象的时候却不行,代码如下(问题就在这里,编译正常,运行却有错误):
type
PTreeNumber=^TBasicTree//TBasicTree是我定义的一个类
var
PNumber:PTreeNumber;
procedure CreateA;
MyList:TStringList.create;
PNumber^.stringID=1; //stringID,stringName为我定义的字段
PNumber^.StringName:='黎明';
MyList.AddObject(PNumber^.stringName,Pointer(PNumber);
showmessage(PTreeNumber(MyList.Object[0]^.StringID);
我想让我的第二段代码实现象第一段代码一样的功能,必须要用对象的方式实现,各位大哥,救命啊!!谢谢!!谢谢!!