如何单击鼠标左键弹出PopupMenu菜单?给段代码!!(200分)

  • 主题发起人 主题发起人 YourEyes
  • 开始时间 开始时间
Y

YourEyes

Unregistered / Unconfirmed
GUEST, unregistred user!
如何单击鼠标左键弹出PopupMenu菜单?给段代码,最好有点说明,否则我是看不懂地!!

我很菜
 
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button= mbLeft then
begin
//得到鼠标位置
//GetCursorPos(pt);
//弹出菜单
//PopupMenu1.Popup(pt.X,pt.Y); 和下面那个比较一下
PopupMenu1.Popup(left+x,top+y);
end;
 
同意楼上意见

 
我也同意!
 
有那么复杂吗?
1,开个form
2, 加一个popmenu控件,设定好menu
3, 修改form的的popmenu属性为加入的popmenu名称
4,run一下,按右键试一下!!!!!
(其它的容器控件都有该属性)
my god!
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus;

type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
asdf1: TMenuItem;
sadf1: TMenuItem;
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
PopupMenu1.Popup(left+x,top+y);
end;

end.
 
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if button=mbleft then //如果单击了左键
popupmenu1.popup(form1.left,form1.top+form1.height-50) //弹出菜单
end;
 
该使用 MouseUp 事件,否则鼠标一放菜单就会消失的,:)
 
procedure TForm1.FormMouseup(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button= mbLeft then
begin
//得到鼠标位置
//GetCursorPos(pt);
//弹出菜单
//PopupMenu1.Popup(pt.X,pt.Y); 和下面那个比较一下
PopupMenu1.Popup(left+x,top+y);
end;

 
接受答案了.
 
后退
顶部