Отключить звук перезвона с помощью Ctrl-F в заметке

Я использую TReplaceDialog и следующее, чтобы поймать ключ для запуска диалогового окна, но Windows 8.1 продолжает «Динь», когда я его использую. Как я могу остановить этот звон? Я пытался возиться с Form KeyPreview, но все равно получаю этот перезвон. То же самое для использования ShortCut (Ctrl-R) с пунктом всплывающего меню "pupuFindReplaceText"

Кроме того, я получаю звуковой сигнал, когда использую вкладку для перехода от редактирования «Найти текст» к редактированию «Заменить текст» в диалоговом окне. Или это особенность 8.1?

if Shift = [ssCtrl] then
begin
  if Char(Key) in ['F','f','R','r'] then
    puFindReplaceTextClick(Sender);
  Key:=0;
end else
begin
end;

person Community    schedule 09.05.2014    source источник
comment
От какого события этот код? Вы разместили его вне контекста, без подробностей о том, где он используется.   -  person Ken White    schedule 09.05.2014
comment
Это гораздо шире. Действия по воспроизведению; включив системные звуки, добавьте заметку в форму, не добавляйте код, запустите приложение, сфокусируйте заметку и нажмите несколько сочетаний клавиш (например, CTRL + R, CTRL + A и т. д.).   -  person TLama    schedule 09.05.2014
comment
@TLama: Ты прав. Это происходит и в Win7 с описанными вами шагами; это не проблема Windows 8.1. (Этого также не произойдет, если вы замените TMemo на TRichEdit без каких-либо других изменений.)   -  person Ken White    schedule 09.05.2014
comment
@ user2175495, назначьте стандартное действие TSearchReplace с ярлыком для всплывающего меню, и все будет в порядке (но не для неназначенных ярлыков).   -  person TLama    schedule 09.05.2014
comment
Я лично сделал бы это с действием и его ярлыком   -  person David Heffernan    schedule 10.05.2014


Ответы (1)


Вместо использования OnKeyDown используйте OnKeyPress:

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = ^F then
  begin
    // Do something;
    Key := #0;
  end;
end;
person Andreas Rejbrand    schedule 09.05.2014