现在想写一个方法,
有数据表,其中属性有:
姓名  学号  性别   住址  ………………通过一个循环语句实现把表中的各个数据放进
Tlistview里面,注意是listview是方法啊,不管表中有多少个属性的数据都可以实现在listview中全部显示

解决方案 »

  1.   

    begin
    for i:=0 to query1.fieldcount-1 do
    begin
    ListView1.AddItem(query1.Fields[i].AsString,sender);
    end;
      

  2.   

    假设用ADOQuery,代码如下:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: Integer;
      item: TListItem;
      col: TListColumn;
    begin
      with ADOQuery1, ListView1 do begin
        ListView1.Clear;
        Close;
        Open;
        First;
        for i := 0 to FieldCount - 1 do begin
          col := Columns.Add;
          col.Caption := Fields[i].FieldName;
        end;
        item := nil;
        while not Eof do begin
          for i := 0 to FieldCount - 1 do begin
            if i = 0 then begin
              item := ListView1.Items.Add;
              item.Caption := Fields[i].AsString;
            end
            else
              item.SubItems.Add(Fields[i].AsString);
          end;
          Next;
        end;
      end;
    end;
      

  3.   

    楼上讲的是放数值的方法
    我想楼主是想知道放字段
    所以可以改成
    begin
    for i:=0 to query1.fieldcount-1 do
    begin
      ListView1.AddItem(query1.Fields[i].fieldname,sender);
    end;
      

  4.   

    不好意思,我用三个循环:  // 设置ListView的列数
      ListView1.Columns.Clear;
      for c:=0 to Table1.FieldCount-1 do
        with ListView1.Columns.Add do
        begin
          Caption := Table1.FieldDefs[c].DisplayName;
          Width := -2; // 自动宽度
        end;  // 填充数据
      Table1.First;
      while not Table1.Eof do
      begin
        // 增加一行
        with ListView1.Items.Add do
        begin
          // 第一列
          Caption := Table1.Fields[0].DisplayText;      // 余下的列
          for c:=1 to Table1.FieldCount-1 do
            SubItems.Add(Table1.Fields[c].DisplayText);
        end;    Table1.Next;
      end;