ListView多选了后如何取得全部选中的每一行的某一信息?还有Listview如何根据键盘输入的字符进行定位?

解决方案 »

  1.   

    var
      Item: TListItem;
    begin
      Item := ListView1.Selected;
      while Item <> nil do
      begin
        Item := ListView1.GetNextItem(Item, sdAll, [isSelected]);
      end;
    end;—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————
      

  2.   

    for i:=0 to listview1.count-1 do
    begin
    if listview1.Items[i].Checked then
    begin
    showmessage(listview1.Items[i].Caption);
    showmessage(listview1.Items[1].SubItems.Strings[0]);//第i行第2列 
    showmessage(listview1.Items[1].SubItems.Strings[1]);//第i行第3列 你有多少列啊?
    end;end;
      

  3.   

    还有问题的话 E_Mail:[email protected]
      

  4.   

    procedure TDevStatSqlSelect.FieldSendWeiClick(Sender: TObject);
    var i,lSelIndex:integer;
    begin
      if FieldListBox.ItemIndex=-1 then Exit;
      for i :=0 to  FieldListBox.Items.Count-1 do
        if FieldListBox.Selected[i] then
        begin
          FieldListBox.Selected[i]:=false;
          lSelIndex:=i;
          if WeiListBox.Items.IndexOf(FieldListBox.items.Strings[i])<>-1 then Continue;
          WeiListBox.Items.Add(FieldListBox.items[i]);
          WeiListBoxStrList.Add(FieldListBoxStrList.Strings[i]);
        end;
      if lSelIndex+1>FieldListBox.Items.Count-1 then  lSelIndex:=-1;
      FieldListBox.Selected[lSelIndex+1]:=true;
    end;
      

  5.   

    对于多选代码如下:
    var
     i : integer;
     s: string
    begin
      for i := 0 to ListView1.Items.count - 1 do
      begin
        if ListView1.Items.Item[i].Selected then
          s := ListView1.Items.Item[i].Selected.Caption;
      end;对于定位代码如下:如果你是通过捕获按键值的话在ListView的KeyPress事件中写
    var
      Item : TListItem;
    begin
      Item := FindCaption(0, Key, True,false,false);
      if ITem <> nil then
        begin
          TListView(Sender).Selected := Item;
          TListView(Sender).SetFocus;
        end;