Tlist,TstringList问题(急)! ( 积分: 50 )

  • 主题发起人 主题发起人 kxytl
  • 开始时间 开始时间
K

kxytl

Unregistered / Unconfirmed
GUEST, unregistred user!
var Griddata:Tlist;
linedata:TstringList;
begin
Griddata := Tlist.create;
LineData:=Tstringlist.create;
for i:=0 to stringGrid1.RowCount-1
begin
LineData.clear;
for j:=0 to StringGrid1.ColCount-1
lineData.add(StringGrid[j,i]);
GridData.add(LineData);
end;
LineData := Griddata.items[0];//好像只有最后一条数据.
for i:=0 to StringGrid1.ColCount-1
showmessage(LineData.strings)

end;

//这里怎么改进才能记录stringGrid中的记录.
相当于记录一个二维数组.
 
var Griddata:Tlist;
linedata:TstringList;
begin
Griddata := Tlist.create;
LineData:=Tstringlist.create;
for i:=0 to stringGrid1.RowCount-1
begin
LineData.clear;
for j:=0 to StringGrid1.ColCount-1
lineData.add(StringGrid[j,i]);
GridData.add(LineData);
end;
LineData := Griddata.items[0];//好像只有最后一条数据.
for i:=0 to StringGrid1.ColCount-1
showmessage(LineData.strings)

end;

//这里怎么改进才能记录stringGrid中的记录.
相当于记录一个二维数组.
 
var Griddata:Tlist;
linedata:TstringList;
begin
Griddata := Tlist.create;
for i:=0 to stringGrid1.RowCount-1
begin
LineData:=Tstringlist.create;
for j:=0 to StringGrid1.ColCount-1
lineData.add(StringGrid[j,i]);
GridData.add(LineData);
end;

end;
 
LineData:=Tstringlist.create;这句话放在for i:=0 to stringGrid1.RowCount-1
这个循环里面。linedata是个指针,没有重新生成的话每次都是覆盖原来的那个内存地址。还有,记得tstringlist用完之后一定要free,不然内存泄漏。
 
没那么复杂吧,这样就可以了嘛:

var Griddata:Tlist;
i:integer;
begin
Griddata := Tlist.create;
for i:=0 to stringGrid1.RowCount-1 do
begin
GridData.add(stringGrid1.rows);
end;
end;
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
687
import
I
I
回复
0
查看
548
import
I
I
回复
0
查看
551
import
I
后退
顶部