rt
thx

解决方案 »

  1.   

    什么意思? 这个有难度, 程序可以控制GetCursorPos(Point);
    SetForegroundWindow(Handle); // 这个 Handle 可以用一个可见的东东代替, 比方TabSheet所在的Form
    PopupMenu.Popup(Point.x, Point.y);
      

  2.   

    但是pageControl没有右键事情来执行这些代码啊。目前已用raize代替
      

  3.   

    刚才试了,没有tabsheet的pageControl不响应OnMouseDown我在pageControl后面放了一个panel,将panel的popupmenu指向那个菜单,这样就解决了
      

  4.   

    procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    var
      vPoint: TPoint;
    begin
      if (Button <> mbRight) or
        not PtInRect(PageControl1.BoundsRect, Point(X, Y)) then Exit;
      if not Assigned(PageControl1.PopupMenu) then Exit;
      vPoint := Mouse.CursorPos;
      PageControl1.PopupMenu.Popup(vPoint.X, vPoint.Y);
    end;