Delphi   发布时间:2022-04-11  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Delphi:我可以区分数字键盘的回车键和回车键吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个古怪的小应用程序,弹出一个在Delphi中编写的屏幕数字键盘/计算器.如果您按“输入”(数字键盘),您将按“=”,如果您按“返回”(在主键盘上),您将按“确定”,我想这样做.

有一个确定按钮是表单的默认人员,响应进入或返回.
还有一个onkeydown事件处理程序,可能会捕获Enter并返回为vk_return.但它的职责是被默认的“确定”按钮所占据.

如果我可以知道返回和输入之间的区别,那么我可以在OK按钮上摆脱我的默认属性,只需按下OK按钮的单击事件处理程序在form key down函数,但是他们都是VK_RETURN.

解决方法

覆盖WM_KEYDOWN消息处理程序:
procedure WMKeyDown(var message: TWMKeyDown); message WM_KEYDOWN;

实现它,以便除了您感兴趣的内容之外,它调用祖先,您可以通过密钥数据消息字段中的“扩展”位来检测返回键和输入键之间的区别:

procedure TForm1.WMKeyDown(var message: TWMKeyDown);
const
  // message.KeyData format:
  // [0..15 repCount][16..23 scan code][24 extended bit][25..28 reserved]
  // [29 context][30 previous state][31 transition state]
  KD_IS_EXTENDED = 1 shl 24;
begin
  if message.CharCode <> VK_RETURN then
  begin
    inherited;
    Exit;
  end;
  if (KD_IS_EXTENDED and message.KeyData) <> 0 then
    Showmessage('Keypad Enter')
  else
    Showmessage('Return');
end;

大佬总结

以上是大佬教程为你收集整理的Delphi:我可以区分数字键盘的回车键和回车键吗?全部内容,希望文章能够帮你解决Delphi:我可以区分数字键盘的回车键和回车键吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。