procedure TForm1.Button1Click(Sender: TObject);
begin
  TrackPopupMenuEx(GetSystemMenu(Handle, False),
    TPM_VERTICAL, Mouse.CursorPos.X, Mouse.CursorPos.Y, Handle, nil);
end;

解决方案 »

  1.   

    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
        procedure WMCOMMAND(var Msg: TWMCOMMAND); message WM_COMMAND;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      TrackPopupMenuEx(GetSystemMenu(Handle, False),
        TPM_VERTICAL, Mouse.CursorPos.X, Mouse.CursorPos.Y, Handle, nil);
    end;procedure TForm1.WMCOMMAND(var Msg: TWMCOMMAND);
    begin
      inherited;
      Perform(WM_SYSCOMMAND, Msg.ItemID, 0);
    end;
      

  2.   

    GetSystemMenu()//得到窗体系统菜单句柄
    TrackPopupMenuEx()//弹出菜单
    Mouse//当前鼠标对象
      

  3.   

    我的Form是bsNone类型的,用了上面几位大侠的招式,还是没有显示出来,
    请大家多帮忙!
      

  4.   

    //前提怎么现在才说?procedure TForm1.Button1Click(Sender: TObject);
    begin
      TrackPopupMenuEx(GetSystemMenu(Application.Handle, False),
    //                               ~~~~~~~~~~~~~~~~~~
        TPM_VERTICAL, Mouse.CursorPos.X, Mouse.CursorPos.Y, Handle, nil);
    end;