有关按键的问题(40分)

  • 主题发起人 主题发起人 zhsh
  • 开始时间 开始时间
Z

zhsh

Unregistered / Unconfirmed
GUEST, unregistred user!
一个窗口有许多控件,其中一个是Memo,希望无论焦点在何处,只要
按下字符键或数字键,其结果都显示在Memo中。请问如何实现
 
挂钩子,截获WM_Keypress消息。
 
用窗口的keydown,将keypreview:=true,在keydown中使用:memo1.setfocus;
 
1、不要用OnKeyDown事件
OnKeyDown事件只管判断哪个键按下,
无法区分字母键的大小写
2、建议用OnKeyPress事件
代码如下:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
with Memo1.Lines do
Text:=Text+Key;
end;
 
不好意思
上面的代码应该加一句
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if ActiveControl<>Memo1 then
with Memo1.Lines do
Text:=Text+Key;end;
end;
 
李颖,KeyPress里的Key值是ASCII还是虚拟键?
 
多人接受答案了。
 
后退
顶部