Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 7:如何填充Tlistview_Delphi_Delphi 7_Tlistview - Fatal编程技术网

Delphi 7:如何填充Tlistview

Delphi 7:如何填充Tlistview,delphi,delphi-7,tlistview,Delphi,Delphi 7,Tlistview,我有一个包含3列的Tlistview,我需要从Tcollection对象中获取,如下所示 FListeDispoProduit := TListeDispoProduit.Create(TProduit); with (FListeDispoProduit) do begin with TProduit(Add) do begin Name := 'Produit 01'; CIP := 'A001'; StockQty := 3;

我有一个包含3列的Tlistview,我需要从Tcollection对象中获取,如下所示

FListeDispoProduit := TListeDispoProduit.Create(TProduit);

  with (FListeDispoProduit) do
  begin
    with TProduit(Add) do
    begin
      Name := 'Produit 01';
      CIP := 'A001';
      StockQty := 3;
    end;
但是,当我尝试将此对象放入Tlistview时,只会填充第一列(名称) 我这样写:

for i := 0 to FListeDispoProduit.Count -1 do
     Tlistview1.Items.Insert(i).Caption := TProduit(FListeDispoProduit.Items[i]).Name;
我需要填写这3列(姓名、cip、库存数量),我该怎么做

多谢各位

希望我说清楚


并在TListView中添加更多列

非常感谢您的帮助。我更喜欢避免使用块。相反,我使用var li:TListItem;然后在for循环中,li:=ListView1.Items.Add();李。说明。。。li.子项。添加。。。我还建议使用ListView1.Items.BeginUpdate和ListView1.Items.EndUpdate来包装插入大量项目的循环。它会暂时禁用ui以加快速度。
begin
应该是新的一行。否则,在训练有素的眼睛看来,只有
标题:=…
with
语句中。另外,Phile Gilmore的第二条评论非常重要。谢谢。这对我帮助很大。
Procedure TForm1.FillListView;
var
  i: Integer;
  ListItem: TListItem;
begin
  try
    ListView1.Items.BeginUpdate;
    try
      ListView1.Clear;
      for i := 1 to 9 do
        with ListView1 do
          begin
            ListItem := ListView1.Items.Add;
            Listitem.Caption := 'Caption '+IntToStr(i);
            ListItem.SubItems.Add('Subitem1 '+IntToStr(i));
            ListItem.SubItems.Add('Subitem2 '+IntToStr(i));
          end;
    finally
      ListView1.Items.EndUpdate;
    end;
  except
    on E: Exception do
      MessageDlg(PWideChar(E.Message), TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], 0);
  end;
end;
Procedure TForm1.FillListView;
var
  i: Integer;
  ListItem: TListItem;
begin
  try
    ListView1.Items.BeginUpdate;
    try
      ListView1.Clear;
      for i := 1 to 9 do
        with ListView1 do
          begin
            ListItem := ListView1.Items.Add;
            Listitem.Caption := 'Caption '+IntToStr(i);
            ListItem.SubItems.Add('Subitem1 '+IntToStr(i));
            ListItem.SubItems.Add('Subitem2 '+IntToStr(i));
          end;
    finally
      ListView1.Items.EndUpdate;
    end;
  except
    on E: Exception do
      MessageDlg(PWideChar(E.Message), TMsgDlgType.mtError, [TMsgDlgBtn.mbOK], 0);
  end;
end;