怎么样判断用户最后按下的一个键是不是回车?

siaosa 2006-02-07 12:01:29
怎么样判断用户最后按下的一个键是不是回车?

如果是回车键怎样把回车给去掉(从键盘缓冲中给删除,使回车失效)?
...全文
224 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
tengfeng8888 2006-02-27
  • 打赏
  • 举报
回复
用Api勾子好像可以,函数为SetWindowsHookEx,先拦截所有的键盘输入,再判断
//参见SetWindowsHookEx
siaosa 2006-02-18
  • 打赏
  • 举报
回复
有没有相关的API函数?可以得到用户最后按下的一个键是不是回车?
siaosa 2006-02-18
  • 打赏
  • 举报
回复
To: luckyboy97(幸运男孩)
是在ADODataSet1.FieldByName('字段名').OnValidate事件中判断

我只想在OnValidate事件中判断.不想在OnKeyPress事件中判断.原因是:该字段可能被众多控件关联.我想让每个与该字段相关连的控件在离开编辑时都验证一下数据的合法性.如果不合法自动禁止离开该控件.

luckyboy97 2006-02-10
  • 打赏
  • 举报
回复
在KEYPRESS事件中写:
IF KEY=#13 THEN KEY:=0;
siaosa 2006-02-10
  • 打赏
  • 举报
回复
字段有可能是字符也有可能是数字或者逻辑型
siaosa 2006-02-08
  • 打赏
  • 举报
回复
To: wjowner
是在ADODataSet1.FieldByName('字段名').OnValidate事件中判断

To: hellolongbin
我只想在OnValidate事件中判断.不想在OnKeyPress事件中判断.原因是:该字段可能被众多控件关联.我想让每个与该字段相关连的控件在离开编辑时都验证一下数据的合法性.如果不合法自动禁止离开该控件.
wjowner 2006-02-08
  • 打赏
  • 举报
回复
那这个字段是什么类型的呢?
字符型的你直接判断最后的字符是不是#10或#13就可以了。注意:Windows操作系统下,回车会被存储成#13#10两个连续字符,要能判断这个情况。
Samland 2006-02-07
  • 打赏
  • 举报
回复
if (KeyCode=13) then KeyCode=0;
hellolongbin 2006-02-07
  • 打赏
  • 举报
回复
if key=#13 then key:=#0;
hellolongbin 2006-02-07
  • 打赏
  • 举报
回复
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then key:=0;
end;
hellolongbin 2006-02-07
  • 打赏
  • 举报
回复
将form的KeyPreview属性设置为true,在form的onkeypress事件里捕获
wjowner 2006-02-07
  • 打赏
  • 举报
回复
你用的是什么控件啊?不同的控件对回车的反应不一样的,如果是TEdit,回车就不会影响到录入的数据,如果是TMemo,你可以判断最后一行是不是空行,如果是空行就删除这行:

if memo1.lines[memo1.lines.count-1]='' then
memo1.lines.delete(memo1.lines.count-1);
siaosa 2006-02-07
  • 打赏
  • 举报
回复
不是在OnKeyDown事件中,是在OnValid事件里判断,没有Key这个变量.
有没有什么函数可以判断用户最后按下的一个键是不是回车

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧