急!怎么在delphi中间屏蔽快捷键?(200分)

  • 主题发起人 主题发起人 Banny
  • 开始时间 开始时间
B

Banny

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么在delphi中间屏蔽快捷键?比如说我要禁止一个edit使用tab和Ctrl+Z等快捷键???
 
在TApplicationEvents的OnMessage事件中进行屏蔽——
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
with Msg do
if (hwnd = Edit1.Handle) and (message = WM_KEYDOWN) then
case wParam of
VK_TAB: Handled := True;
Ord('z'), Ord('Z'): Handled := (GetKeyState(VK_CONTROL) and $80) = $80;
end;
end;
 
使用ShortCut函数呀。
屏蔽:
Edit1.ShortCut := 0;
启用:
Edit1.ShortCut := ShortCut('Z', [ssCtrl] );
 
public
{ Public declarations }
procedure MyMessage(var Msg: TMSG; var Handled: Boolean);

procedure TForm1.MyMessage(var Msg: TMSG; var Handled: Boolean);
begin
with Msg do
if (hwnd = Edit1.Handle) and (message = WM_KEYDOWN) then
case wParam of
VK_TAB: Handled := True;
Ord('V'): Handled := (GetKeyState(VK_CONTROL) and $80) = $80;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := MyMessage;
end;

 
多人接受答案了。
 
后退
顶部