Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запрет звука по нажатию Enter [D2005, XP]


Semen ©   (2010-09-07 07:07:00) 

Есть обычное поле TEdit.
1.Когда в нем нажимаеш Enter Windows XP издает звук.
2.Когда доходиш до максимальной допустимой длинны поля и больше нельзя ввести символы (например когда MaxLength свойство = 3).
Как зделать так,чтобы его не было.
В смысле чтобы не отключать в самом Windows-e звук,
а отключить событие воспроизведения звука по нажатию Enter у меня в программе.


Leonid Troyanovsky   (2010-09-07 07:53:00) [1]


> Semen   (07.09.10 07:07)  

> Как зделать так,чтобы его не было.

Это реакция эдита на illegal characters или превышение
допустимой длины. Для обращения внимания юзера.

Вообще-то, в диалогах клавиши Enter, Esc играют
специальную роль - для нажатия default & cancel
button и в этом случае в эдиты не попадают.

Ну, если очень хочется, можно в OnKeyPress:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 with Sender as TEdit do
  if (Key in [ #13,#27]) or
     ((Length(Text) = MaxLength) and (SelLength = 0) and (Key #8)) then
    Key := #0;
end;

--
Regards, LVT.


Ser001   (2010-09-07 07:43:00) [2]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо