使用Delphi XE8,Firemonkey多设备形式。
在为密码输入设置的标准TEdit中,当用户按下enter(在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上播放。有谁知道如何制止这个?
答案 0 :(得分:0)
不要将path
用于Key值,而只是将结果设置为0.这样可以防止发出哔哔声。
vknone
正如Rob所提到的,您可以将遇到返回时要执行的按钮的Default属性设置为true。如果你这样做,你不应该需要吃掉回车的代码。