Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Исключить звуковой сигнал в поле ввода

Delphi , Компоненты и Классы , TEdit

Исключить звуковой сигнал в поле ввода

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

// Either disable the Beep in the OnKeyPress handler: 
// Unterdrucke den Beep-Ton entweder im OnKeyPress Ereignis: 

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
 begin
   if key = #13 then // #13 = Return 
  begin
     key := #0;
     // Code... 
  end;
 end;

 // Or in the OnKeyDown-Handler: 
// Oder im OnKeyDown Ereignis: 

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
   Shift: TShiftState);
 var
   Mgs: TMsg;
 begin
   if Key = VK_RETURN then
     PeekMessage(Mgs, 0, WM_CHAR, WM_CHAR, PM_REMOVE);
 end;

Приведенный код - часть приложения на Delphi, предназначенного для предотвращения стандартного звукового сигнала (beep) при нажатии клавиши Enter в текстовом поле. Есть два подхода к достижению этого: использование события OnKeyPress или события OnKeyDown.

Использование события OnKeyPress В процедуре Edit1KeyPress, если нажатая клавиша равна #13 (который представляет собой клавишу Enter), она устанавливает переменную key в #0, эффективно потребляя нажатие клавиши и предотвращая стандартный звуковой сигнал. Этот подход работает только для клавиши Enter.

Использование события OnKeyDown В процедуре Edit1KeyDown, если нажатая клавиша равна VK_RETURN (который представляет собой клавишу Enter), она использует функцию PeekMessage для удаления элемента очереди сообщений, который бы вызвал звуковой сигнал. Этот подход работает для всех клавиш, а не только для Enter.

Предлагаемая альтернативная.solution Вы можете использовать свойство Application.Beep для отключения или включения звукового сигнала глобально для вашего приложения. Для отключения звукового сигнала вы можете установить Application.Beep := False;. Альтернативно, вы также можете переопределить стандартный звуковой сигнал, играя свой собственный звукозапись с помощью функции PlaySound.

Например:

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.Beep := False;
end;

// Для игры собственного звука вместо стандартного beep
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if key = #13 then
  begin
    // Играть свой собственный звукозапись здесь
    PlaySound('path_to_your_sound_file.wav', nil, SND_FILENAME or SND_ASYNC);
  end;
end;

Обратите внимание, что функция PlaySound доступна только в приложениях Windows. Если вы разрабатываете кроссплатформенное приложение, вам может потребоваться другой подход.

В статье описано, как отключить звуковой сигнал в поле ввода при помощи обработчиков событий OnKeyPress и OnKeyDown в Delphi.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TEdit ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:48:12/0.0036430358886719/0