双击时会得到Listbox的itemindex,之后showmessage(listbox1.items[itemindex])就可以了

解决方案 »

  1.   

    上面说的好像不行
    我做一下,不过有漏洞
    procedure TForm1.ListBox2DblClick(Sender: TObject);
    var
     i:integer;
    begin
        for i:=0 to listbox2.Count-1 do
          if listbox2.Selected[i] then
            showmessage(inttostr(i)+' was selected');
    end;
      

  2.   

    procedure TForm1.ListBox2DblClick(Sender: TObject);
    var
     i:integer;
    begin
        for i:=0 to listbox2.Count-1 do
          if listbox2.Selected[i] then
            showmessage(inttostr(i+1)+' was selected');
    end;
    你做的改成这样!这里获得的是第几项!但方法不好!上面获得的是内容,但要改为
    showmessage(listbox1.items[listbox1.itemindex]);
    获得项数改为
    showmessage(inttostr(listbox1.itemindex+1));
      

  3.   

    这里提供另一种方法:
    var
    i:integer;
    pt:TPoint;
    begin
    getcursorpos(pt);
    i:=Listbox1.ItemAtPos(pt, True) ;
    if i>=  0 then
    showmessage(ListBox1.items[i]);
    end;
      

  4.   

    showmessage(listbox1.items[listbox1.itemindex]);
      

  5.   

    来迟了,但我还是贴:
    procedure TMainForm.ListBox1DblClick(Sender: TObject);
    var
      tmpString: string;
    begin
      tmpString := TListBox(Sender).Items[TListBox(Sender).Itemindex];
      showmessage(tmpString);
    end;
      

  6.   

    刚刚才发现:
    listbox只有双击了item才会触发dblclick事件,如果listbox没有item或点在item以外的地方都不会触发,所以上面的代码没问题。