在OSX上按Enter键时发出Firemonkey声音

时间:2016-04-04 15:10:33

标签: delphi

使用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上播放。有谁知道如何制止这个?

1 个答案:

答案 0 :(得分:0)

不要将path用于Key值,而只是将结果设置为0.这样可以防止发出哔哔声。

vknone

正如Rob所提到的,您可以将遇到返回时要执行的按钮的Default属性设置为true。如果你这样做,你不应该需要吃掉回车的代码。