Delphi 如何在stringgrid中填充数据

Delphi 如何在stringgrid中填充数据,delphi,delphi-xe2,firemonkey,tstringgrid,Delphi,Delphi Xe2,Firemonkey,Tstringgrid,我不知道如何处理stringrids,我想用数据填充它,我已经成功地用listview完成了它 这是我填写listview的代码 var LJSONArray : TJSONArray; LItem: TListViewItem; I: Integer; begin LJSONArray := TJSONArray.Create; try BackendStorage1.Storage.QueryObjects('ShoppingList', [], LJSONArray); L

我不知道如何处理stringrids,我想用数据填充它,我已经成功地用listview完成了它 这是我填写listview的代码

var
 LJSONArray : TJSONArray;
 LItem: TListViewItem;
  I: Integer;
 begin
 LJSONArray := TJSONArray.Create;
 try
 BackendStorage1.Storage.QueryObjects('ShoppingList', [], LJSONArray);
ListView1.ClearItems;
for I := 0 to LJSONArray.Count-1 do
begin
  LItem := ListView1.Items.Add;
  LItem.Text := (LJSonArray.Items[I].GetValue<string>('item'));
end;
finally
LJSONArray.Free;
end;
end;
var
LJSONArray:TJSONArray;
LItem:TListViewItem;
I:整数;
开始
LJSONArray:=TJSONArray.Create;
尝试
BackendStorage1.Storage.QueryObjects('ShoppingList',[],LJSONArray);
ListView1.ClearItems;
对于I:=0到LJSONArray.Count-1 do
开始
LItem:=ListView1.Items.Add;
LItem.Text:=(LJSonArray.Items[I].GetValue('item');
结束;
最后
LJSONArray.Free;
结束;
结束;

要将项目添加到
TStringGrid
,您必须先设置其属性,然后使用其属性来填充项目,例如:

var
  LJSONArray : TJSONArray;
  I: Integer;
begin
  LJSONArray := TJSONArray.Create;
  try
    BackendStorage1.Storage.QueryObjects('ShoppingList', [], LJSONArray);
    StringGrid1.RowCount := LJSONArray.Count;
    for I := 0 to LJSONArray.Count-1 do
    begin
      StringGrid1.Cells[0, I] := LJSonArray.Items[I].GetValue<string>('item');
    end;
  finally
    LJSONArray.Free;
  end;
end;
var
LJSONArray:TJSONArray;
I:整数;
开始
LJSONArray:=TJSONArray.Create;
尝试
BackendStorage1.Storage.QueryObjects('ShoppingList',[],LJSONArray);
StringGrid1.RowCount:=LJSONArray.Count;
对于I:=0到LJSONArray.Count-1 do
开始
StringGrid1.Cells[0,I]:=LJSonArray.Items[I].GetValue('item');
结束;
最后
LJSONArray.Free;
结束;
结束;

请确保事先已将网格的属性设置为至少1,例如在设计时。

错误修复显示未声明的标识符@雷米Lebeau@markkk:VCL的
TStringGrid
具有已发布的
FixedRows
属性。您是否使用FireMonkey而不是VCL?FireMonkey的
TStringGrid
没有
FixedRows
属性,但是它有
RowCount
Cells
属性,所以如果确实在使用FireMonkey,只需删除
FixedRows
引用即可。下一次,请更清楚地了解您实际使用的框架。是的,我使用firemonkey,请编辑您的答案,非常感谢,我将更具体地介绍nxt time@RemyLebeau@markkk:如果您使用的是FireMonkey,则应编辑您的问题以添加该标记,以便人们知道您不是在询问VCL TStringGrid。我们不必猜测您使用的是哪一列。@markkk:您在网格中定义了任何列吗?您是否已经查看了
TStringGrid
的可用属性,或者阅读了它的文档?