窗口显示时,把TABLE里的记录全部读到LISTBOX里(只取其中的一个字段),然后要点击其中的一个item,要求把点的这条记录的全部字段的值读读到listview里,应该怎么做?以前没怎么用过LISTVIEW,真火死了!!!

解决方案 »

  1.   

    listview.item.caption  第一个子段
    listview.item.subitems.add 后面的字段
      

  2.   

    listview1.ViewStyle :=vsReport;
      listview1.Columns.Add.Caption :='0';
      listview1.Columns.Add.Caption :='1';
      listview1.Columns.Add.Caption :='2';
      with listview1.Items.Add  do
      begin
        caption:='xxxxxxxx';
        SubItems.Add('s1');
        SubItems.Add('s2');
      end;
      

  3.   

    把一个字段加入到listbox:
    for i:=0 to query1.recordcount-1 do
     begin
     listbox1.items.add(query1.fieldbyname('字段名').asstring);
     query1.next;
     end;
    加入listview 首先定义一个全局变量k:integer;
    var
    i,j,n:integer;
    ls:Tlistitem;
    s:string;for n:=0 to listbox1.items.count-1 do
     begin
      if listbox1.Selected[n]  then
      begin
      s:=listbox1.Items.Strings[listbox1.ItemIndex];
      end;
      end;with query1 do 
    begin
    close;
    sql.clear;
    sql.add('select * from 表名 where 字段名=:ss');
    parambyname('字段名').asstring:=s;
    open;
    end;listview1.Clear ;
    query1.First ;
    for k:=0 to query1.fieldcount-1 do
     begin
     listview1.Columns.Add;
     listview1.Columns.Items[k].Caption :=query1.Fields.Fields[k].FieldName;
     end; for j:=0 to query1.recordcount-1 do
      begin
       ls:=listview1.Items.add;
       ls.Caption :=query1.Fields[0].AsString;
       for i:=1 to k-1 do
        begin
         ls.SubItems.Add(query1.Fields[i].AsString);
        end;
       query1.Next;
      end;
      

  4.   

    同意xiehua822(xiehua) 。我试过,ok!