Як прибрати звук від натискання Alt - буква

На формі є MainMenu, для деяких пунктів у ньому задані через підкреслення hotkeys, наприклад, "&Fille" (hotkey буде Alt+F). Проблема в тому, що при натисканні на Alt+літера, якщо такого хоткея немає (наприклад, Alt+W), Windows видає звук, MessageBeep. Як позбутися цього звуку? Анноїт.

Подивився у вихідниках VCL, де це можливо, нічого не знайшов.

> Подивився у вихідниках VCL, де це можливо, нічого не знайшов.

Так, це треба дивитися у вихідних windows.

> Так, це треба дивитися у вихідних windows.Ні, це явно десь у VCL, в деяких програмах написаних на Delphi, цього звуку немає.

> Ні, це явно десь у VCL, у деяких програмах написаних > на Delphi, цього звуку немає.

Дельфі тут ні до чого. Звук виходить при обробці WM_MENUCHAR, коли в high-order word of the return value повертається 0.

> Дельфі тут ні до чого. Звук виходить під час обробки > WM_MENUCHAR, коли в high-order word of the return > value повертається 0.Майже ясно. Тепер треба зрозуміти, як цього звуку позбутися.

Проблема в чому: мені особисто не заважає сам звук, але у мене після натискання Alt+літера з'являється форма швидкого пошуку, як у NC. І зараз вона з'являється у супроводі цього звуку. :) Тобто. у мене натискання Alt+літера зарезервовано під мій шорткат - як би прибрати стандартне відпрацювання, з цим звуком?

> звуку. :) Тобто. у мене натискання Alt+літера зарезервовано > під мій шорткат - як би прибрати стандартне відпрацювання, з > цим звуком?

Мабуть, якось так (без будь-яких шорткатів): procedure TForm1.WMMenuChar(var msg: TWMMenuChar); // message WM_MENUCHAR; var s : String; begin s:=InputBox("Find", "match", msg.User); msg.Result := MakeLResult(0, 1); end;

> Мабуть, якось так (без будь-яких шорткатів): Дякую, допомогло.