怎么实现用鼠标左键点击Speedbutton出现PopupMenu(注意我要左键不要右键)

解决方案 »

  1.   

    procedure TForm1.SpeedButton1MouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    begin
      PopupMenu1.Popup(100,100);
    end;
      

  2.   

    procedure TForm1.SpeedButton1MouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    var pt: TPoint;
    begin
      if Button = mbLeft then begin
        GetCursorPos(pt);
        PopupMenu1.Popup(pt.X, pt.Y);
      end;
    end;
      

  3.   

    这很简单,算准按钮的座标位置,然后调用popupMenu1.Popup(X,Y);
      

  4.   

    在Speedbutton的onclick事件中写入:
    speedbutton1.PopupMenu:=PopupMenu1;
    speedbutton1.PopupMenu.Popup(鼠标位置x,y);
      

  5.   

    即:
    procedure TForm1.SpeedButton1Click(Sender: TObject);
    var pt: TPoint;
    begin
    speedbutton1.PopupMenu:=PopupMenu1;
    GetCursorPos(pt);
    speedbutton1.PopupMenu.Popup(pt.x,pt.y);
    end;
      

  6.   

    还有一人不用API的
    procedure TForm1.SpeedButton1Click(Sender: TObject);
    var
     point:TPoint;
    begin
     point.X:=mouse.CursorPos.X;
     point.Y:=mouse.CursorPos.Y;
     ScreenToClient(point);
      PopupMenu1.Popup(point.X,point.y);
    end;