在一个form 里设置了popupmenu, 若这个form里还有Edit类的控件,在Edid里右击, 则弹出式菜单冲突,我如何做到在Edit里弹出默认的菜单, 而在form的其它位置弹出自己设计菜单。
解决方案 »
- 这种时间格式怎么转换?
- 急急急急急急急急急。。。。两个edit值的问题 答案适合马上散分
- 我用DELPHI IDTCPSERVER/IDTCPCLIENT设计一个外网和内网信息传递程序,有谁可帮忙啊
- 请教高手,用Wise Install 制作安装程序时, 如果要其支持ACCESS,那要加什么?
- ****乱码转换成可见字符的问题****
- 为什么我的中间层要多次被执行?
- 还是一个关于dbgrid的奇怪问题,不要见笑
- 敢问如何用winsock api在delphi中实现发送smtp验证邮件??我找了好多资料都没搞到!100分
- 誰能告訴我??謝謝
- ADO里面可以指定那些字段更新,那些字段不更新吗???
- TTable.Locate()问题救急!!!
- 三分!
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button=mbRight then
PopupMenu1.Popup(Mouse.CursorPos.X,Mouse.CursorPos.Y);
end;
var Handled: Boolean);
var
vHandle: THandle;
vClassName: array[0..255] of Char;
vMousePos: TPoint;
vPopupMenu: TPopupMenu;
begin
vMousePos := ClientToScreen(MousePos);
vHandle := WindowFromPoint(vMousePos);
GetClassName(vHandle, vClassName, SizeOf(vClassName));
if SameText(vClassName, 'TEdit') then
begin
Handled := True;
OnContextPopup := nil;
vPopupMenu := PopupMenu;
PopupMenu := nil;
try
SendMessage(vHandle, WM_CONTEXTMENU, vHandle,
MakeLParam(vMousePos.X, vMousePos.Y));
except
end;
PopupMenu := vPopupMenu;
OnContextPopup := FormContextPopup;
end;
end;