![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрет звука по нажатию 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;