上面说的好像不行 我做一下,不过有漏洞 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;
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));
这里提供另一种方法: var i:integer; pt:TPoint; begin getcursorpos(pt); i:=Listbox1.ItemAtPos(pt, True) ; if i>= 0 then showmessage(ListBox1.items[i]); end;
showmessage(listbox1.items[listbox1.itemindex]);
来迟了,但我还是贴: procedure TMainForm.ListBox1DblClick(Sender: TObject); var tmpString: string; begin tmpString := TListBox(Sender).Items[TListBox(Sender).Itemindex]; showmessage(tmpString); end;
我做一下,不过有漏洞
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;
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));
var
i:integer;
pt:TPoint;
begin
getcursorpos(pt);
i:=Listbox1.ItemAtPos(pt, True) ;
if i>= 0 then
showmessage(ListBox1.items[i]);
end;
procedure TMainForm.ListBox1DblClick(Sender: TObject);
var
tmpString: string;
begin
tmpString := TListBox(Sender).Items[TListBox(Sender).Itemindex];
showmessage(tmpString);
end;
listbox只有双击了item才会触发dblclick事件,如果listbox没有item或点在item以外的地方都不会触发,所以上面的代码没问题。