Отключить звук при открытии модального окна сочетание

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Александр Яшин
новенький
Сообщения: 67
Зарегистрирован: 21.11.2009 08:31:01

Отключить звук при открытии модального окна сочетание

Сообщение Александр Яшин »

Пытаюсь создать поиск в TMemo как во всех текстовых редакторах. Т.е. при нажатии Ctrl+F должно открываться окно диалога поиска. При открытии этого окна издается звук Windows. Это раздражает. Как отключить этот звук?
Для нажатия клавиши Enter, например в TEDit знаю.
Key:= #0;
в обработчике OnKeyPress, но для моего случая необходимо использовать OnKeyDown, а там параметр Key типа Word.
Key:= 0;
не работает.
Александр Яшин
новенький
Сообщения: 67
Зарегистрирован: 21.11.2009 08:31:01

Сообщение Александр Яшин »

Неужели никто не знает?
Эй, знатоки, отзовитесь!
Kubanych
новенький
Сообщения: 73
Зарегистрирован: 15.10.2008 10:02:18

Сообщение Kubanych »

Попробуй так:

Код: Выделить всё

procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState );
begin
  if((Key = ord('F')) and (ssCTRL in Shift)) then
  begin
    if not Assigned(Form2) then
      Application.CreateForm(TForm2, Form2);
    SystemParametersInfo(SPI_SETBEEP, 0, nil, SPIF_SENDCHANGE);
    Form2.ShowModal;
    SystemParametersInfo(SPI_SETBEEP, 1, nil, SPIF_SENDCHANGE);
  end;
end;

Функция SystemParametersInfo со вторым параметром 0 отключает звук.
Обязательно восстанавливай настройки вызывая функцию с параметром 1, иначе до следующей перезагрузки предупреждающие звуки в винде будут отключены.
Ответить