下面这段代码哪里错了啊?
为什么deltalist中没有数据/
var
 deltalist:TStringList;
 i:integer;
begin
 deltalist:=TStringList.Create;
 deltalist.LoadFromStream(tempstream);
 if deltalist.Count>0 then
 begin
  for i:=0 to deltalist.Count-1 do
  begin
   StringGrid1.Cells[i,0]:=IntToStr(Tuser(deltalist.Objects[i]).ID);
   StringGrid1.Cells[i,1]:=Tuser(deltalist.Objects[i]).username;
   StringGrid1.Cells[i,2]:=Tuser(deltalist.Objects[i]).pwd;
  end;
 end;
end;

解决方案 »

  1.   

    tempstream这个初始化就已经创建了!
      

  2.   

    tempstream的内容是从哪里来的?
      

  3.   

    我调试发现就是在
       StringGrid1.Cells[i,0]:=IntToStr(Tuser(deltalist.Objects[i]).ID);
       StringGrid1.Cells[i,1]:=Tuser(deltalist.Objects[i]).username;
       StringGrid1.Cells[i,2]:=Tuser(deltalist.Objects[i]).pwd;
    这里出现问题‘access violation at address’
      

  4.   

    tempstream是不是没有初始化,根本没有东西.
      

  5.   

    应该是有东西的,不然不会执行到循环里面的
    我通常的方法是
       StringGrid1.Cells[i,0]:= IntToStr(i) + ',0';//IntToStr(Tuser(deltalist.Objects[i]).ID);
       StringGrid1.Cells[i,1]:=  IntToStr(i) + ',1';//Tuser(deltalist.Objects[i]).username;
       StringGrid1.Cells[i,2]:= IntToStr(i) + ',2';//Tuser(deltalist.Objects[i]).pwd;
    看看排除Tuser结构及里面的内容之外有没有问题再说。如果没有问题那就是结构或者赋值的问题了