help

解决方案 »

  1.   

    在ListBox1的OnMouseDown事件中:
    procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    var pt: TPoint;
    begin
      if ssRight in Shift then begin
        GetCursorPos(pt);
        pt := ListBox1.ScreenToClient(pt);
        ListBox1.ItemIndex := ListBox1.ItemAtPos(pt, True);
      end;
    end;另外,这问题怎么是在非技术区提问?
      

  2.   

    晕了,不用GetCursorPos就可以了,
    procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      if ssRight in Shift then
        ListBox1.ItemIndex := ListBox1.ItemAtPos(Point(X,Y), True);
    end;
      

  3.   

    procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    var
      i:integer;
      MousePos:TPoint;
    begin
       MousePos.X :=X;
       MousePos.Y :=Y;
       if Button = mbRight then
        begin
          i := ListBox1.ItemAtPos(MousePos,False);
          ListBox1.ItemIndex:=i;
        end;
    end;