【问题标题】:how to populate data in a stringgrid如何在字符串网格中填充数据
【发布时间】:2015-08-20 22:28:28
【问题描述】:

我不知道如何处理字符串,我想用数据填充它,我已经成功地用列表视图做到了 这是我填充列表视图的代码..

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;

【问题讨论】:

    标签: delphi delphi-xe2 firemonkey tstringgrid


    【解决方案1】:

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

    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;
    

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

    【讨论】:

    • 错误 FixedRows 未声明的标识符! @Remy Lebeau
    • @markkk:VCL 的TStringGrid 有一个已发布的FixedRows 属性。你用 FireMonkey 代替 VCL 吗? FireMonkey 的TStringGrid 没有FixedRows 属性,但它有RowCountCells 属性,所以如果您确实在使用FireMonkey,只需删除FixedRows 引用。下次请更清楚您实际使用的是哪个框架。
    • 是的,我正在使用 firemonkey,请编辑您的答案,非常感谢,下次我会更具体@Remy Lebeau
    • @markkk:如果您使用的是 FireMonkey,您应该编辑您的问题以添加该标签,这样人们就知道您不是在询问 VCL TStringGrid。我们不必猜测您使用的是哪一个。
    • @markkk:您是否在网格中定义了任何列?您是否查看过TStringGrid 的可用属性,或阅读过它的文档?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 2015-09-11
    相关资源
    最近更新 更多