gpt4 book ai didi

Delphi:我可以区分小键盘的回车键和回车键吗?

转载 作者:行者123 更新时间:2023-12-03 14:41:14 29 4
gpt4 key购买 nike

我有一个古色古香的小应用程序,它会弹出一个用 Delphi 编写的屏幕数字键盘/计算器。我想让它这样,如果您按“输入”(在数字键盘上),您将按“=”,如果您按“返回”(在主键盘上),您将按“确定”。

有一个“确定”按钮,它是表单的默认按钮,可响应按 Enter 或 Return 键。还有一个 onkeydown 事件处理程序,它可能会捕获 Enter 并作为 vk_return 返回。但它的职责被默认的“确定”按钮所取代。

如果我能知道 return 和 Enter 之间的区别,那么我就可以摆脱“确定”按钮上的默认属性,只需在表单按键功能上点击“确定”按钮的单击事件处理程序,但可惜它们都是 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:我可以区分小键盘的回车键和回车键吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1949168/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com