用listview显示一个记录集中的内容,对每一条记录进行处理,如何实现类似于dbgrid的效果,实现在dbgrid中逐条处理,逐条变蓝,一条一条向下进行的效果。

解决方案 »

  1.   

    listview1.Items.Item[i].Selected := true;
      listview1.items.item[i].MakeVisible(true);
      

  2.   

    //添加
    procedure TForm1.Button1Click(Sender: TObject);
    var
            myitem:tlistitem;begin        myitem:=listview1.Items.add;
            myitem.Caption:=edit5.Text;
            myitem.SubItems.Add(edit6.Text);
            myitem.SubItems.Add(MaskEdit16.Text);
            myitem.SubItems.Add(combobox5.Text);
            myitem.SubItems.Add(MaskEdit17.Text);
            myitem.SubItems.Add(MaskEdit18.Text);
    或者
    //
    listview1.Selected.Caption:=edit5.Text;
    listview1.Selected.SubItems[0]:=edit6.Text;
    不过之前得预先在Listview的编辑器里手动添加Subitem,如果想用Subitems[]赋值的话。end;
    //删除
    if MessageBox(0,PChar('该记录确实要删除吗?'),'警告',MB_YESNO)= IDYES then
            listview1.Selected.Delete;
      

  3.   

    listview不同行不同颜色显示:注意,ListView的OwnerDraw应该设置为False!然后在CustDrawItem中,添加代码:  //你要的是逐行变蓝是吗,下面是隔行不同颜色
      //我有个修改的思路,没有试过,用RGB来标颜色
      //B值逐渐变大,你觉的如何if Item.Index mod 2 =0 then 
    Sender.Canvas.Brush.Color :=clSkyBlue  elseSender.Canvas.Brush.Color :=clWhite;