【发布时间】:2016-04-04 15:10:33
【问题描述】:
使用Delphi XE8,Firemonkey多设备形式。
在为密码输入设置的标准 TEdit 中,当用户按下回车键(在 OSX 上)时,我无法停止默认的警报声音,Windows 工作正常。
我尝试在 KeyDown 和 KeyUp 事件中设置以下内容:
procedure TfrmMain.txtPasswordPromptKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
begin
if (Key = vkReturn) and (btnPasswordPromptGo.Tag = 0) then begin
Key := vkNone;
KeyChar := #0;
btnPasswordPromptGoClick(sender);
end;
end;
procedure TfrmMain.txtPasswordPromptKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
begin
if (Key = vkReturn) and (btnPasswordPromptGo.Tag = 0) then begin
Key := vkNone;
KeyChar := #0;
end;
end;
声音仍在 OSX 上播放。有谁知道如何阻止这种情况?
【问题讨论】:
-
在 VCL 应用程序中,您不需要编写任何代码。您只需将 OK 按钮上的
Default属性设置为 true。 FMX 不是那样工作的吗? -
哇,在使用 Cancel 和 Default 属性的这些年里,我从未意识到它也会阻止来自文本框的默认哔声!谢谢,这行得通。结果我忽略了这一点,因为我使用的是没有 Default 属性的 TCornerButton,但我能够将其更改为 TButton。
标签: delphi