那你得先添加listviewitem,添加完后,遍历每一列,对该列不同行填充

解决方案 »

  1.   

    var
       NewItem:TListItem;
    begin
      //新增一行
       NewItem := ListView1.items.Add;
       //为每一行的每一列添加信息。
       NewItem.Subitems.Add('第一列');
       NewItem.Subitems.Add('第二列');
    end;
      

  2.   


    with ListView1.items.Add do
    begin   
      Subitems.Add('第一列');
      Subitems.Add('第二列');   
      Subitems.Add('第n列,依此类推');
    end;
      

  3.   

    用ListView1.Items[i].SubItems[j]:='123'; 运行提示出错.求教  出现错误应该是你没先用ListView1.items.Add
     Subitems.Add创建对象,要创建后才可以直接赋值
      

  4.   

    Unit Unit1;InterfaceUses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, StdCtrls, Buttons, ComCtrls;Type
      TForm1 = Class(TForm)
        ListView1: TListView;
        BitBtn1: TBitBtn;
        Procedure FormCreate(Sender: TObject);
        Procedure BitBtn1Click(Sender: TObject);
      Private
        Procedure ListViewAdd(R, C: Integer; S: String);
      Public
      End;Var
      Form1: TForm1;Implementation{$R *.dfm}Procedure TForm1.FormCreate(Sender: TObject);
    Begin
      ListView1.ViewStyle := vsReport;
      ListView1.ReadOnly := True;
    End;Procedure TForm1.ListViewAdd(R, C: Integer; S: String);
    Var
      I: Integer;
    Begin
      If (R < 1) Or (C < 1) Then
      Begin
        Exit;
      End;
      With ListView1 Do
      Begin    Items.BeginUpdate;
        Try
          While Columns.Count < C Do
          Begin
            Columns.BeginUpdate;
            Try
              With Columns.Add Do
              Begin
                Width := 50;
                Caption := Format('No.%d', [Columns.Count]);
              End;
            Finally
              Columns.EndUpdate;
            End;
            For I := 0 To Items.Count - 1 Do
            Begin
              Items[I].SubItems.Add('');
            End;
          End;      While Items.Count < R Do
          Begin
            With Items.Add Do
            Begin
              Caption := '';
              For I := 0 To Columns.Count - 1 Do
              Begin
                SubItems.Add('');
              End;
            End;
          End;      If C = 1 Then
          Begin
            Items[R - 1].Caption := S;
          End
          Else
          Begin
            Items[R - 1].SubItems[C - 2] := S;
          End;
        Finally
          Items.EndUpdate;
        End;
      End;
    End;Procedure TForm1.BitBtn1Click(Sender: TObject);
    Var
      R, C: Integer;
    Begin
      Randomize;
      R := Random(20) + 1;
      C := Random(20) + 1;
      ListViewAdd(R, C, Format('%d.%d', [R, C]));
    End;End.