Delphi 7:如何填充Tlistview
我有一个包含3列的Tlistview,我需要从Tcollection对象中获取,如下所示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;
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;