关于TEdit(50分)

  • 主题发起人 主题发起人 longwx
  • 开始时间 开始时间
L

longwx

Unregistered / Unconfirmed
GUEST, unregistred user!
请问:怎样判断在TEdit中输入了回车?谢谢。
 
很简单
在tedit的onkeydown中写上
if key=13 then ...;
 
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
begin
showmessage('enter key pressed');
key:=0;
end;
end;
 
在OnKeypress事件中
begin
if key = #13 then
begin
// your code here;
key := '';//把回车键清除
end;
end;
 
2 老莫、Liu JZX
不要直接用13,不是好习惯,
改成这样:
if Key=<B>vk_Return</B>
程序比较好理解

2 longwx:
如果他们说的方法不成功的话,
记得把Form.KeyPreview设置为True
 
老蚯: vk_Retrun有什么出处?麻烦讲讲。
 
以下是Delphi源代码:
//<B>windows.pas</B>
const
...
{$EXTERNALSYM VK_RETURN}
<B>VK_RETURN = 13;</B>
...

以下是Win32API Help关于<B>Virtual-Key Codes Described:</B>
The wParam parameter of a keystroke message contains
the virtual-key code of the key that was pressed or released.
A window procedure processes or ignores a keystroke message,
depending on the value of the virtual-key code.

参见WM_KeyDown、WM_KeyUp消息

---------------------------------------------------------------

另外,Delphi中OnKeyDown、OnKeyUp事件请参见WM_KeyDown、WM_KeyUp消息

OnKeyPress事件请参见WM_Char消息
 
用鼠标指向VK_RETURN,按下ctrl键单击鼠标即可条到VK_RETURN的定义处
 
用什么无所谓, 不过一般用定义的vk-return vk-shift等只能说是比较好吧
 
多人接受答案了。
 
后退
顶部