怎样使OnKeyDown实现OnKeyPress的功能效果(50分)

  • 主题发起人 主题发起人 wwk
  • 开始时间 开始时间
W

wwk

Unregistered / Unconfirmed
GUEST, unregistred user!
我在OnKeyPress中作如下代码:
procedure EditKeyPress(Sender: TObject; var Key: Char);
begin
Key := #0;
end;
这样无论怎言输入,Edit的Text永远不变
但我要在OnKeyDown中实现,如下:
procedure EditKeyDown(Sender: TObject; var Key: Word;.....);
begin
Key := 0;
end;
但取得不到和OnKeyPress中的效果

 
事件的执行顺序是先OnKeyPress后OnKeyDown
为什么不想在OnKeyPress中实现呢?
 
to liuly:
因为我还要捕获光标方向键,而在KeyPress中捕获不到。
 
我想除非是重写Vcl,否则不可能相同。
 
别的输入在KEYPRESS里屏蔽,方向键在KEYDOWN里扑获啊!!!
 
agree with gcq
 
wwk:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
加个条件语句,
在OnKeyPress中处理字符按键。
在OnKeyDown中处理功能按键。
 
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Edit1.ReadOnly := not (Key in [VK_LEFT, VK_RIGHT, VK_HOME, VK_END]);
end;
 
多人接受答案了。
 
后退
顶部