Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.01.08;
Скачать: CL | DM;

Вниз

Как заставить TEdit не генерить звуковой сигнал при включенном обработчике нажатий клавиш.   Найти похожие ветки 

 
voronkov ©   (2001-12-18 12:27) [0]

Утомил этот трабл и не знаю как бороться. В TEdit использую обработчик нажатий клавиш OnKeyDown. Ловлю нажатия клавиш типа Enter, Escape и прочих. После нажатия таких клавиш звучит звуковой сигнал. Если стоит звуковая карта, то сигнал из набора звуковой схемы, если не стоит, то работает динамик компьютера. Пользователи воют, я сижу с ними, вою тоже. Лезть внутрь компьютеров и отрубать динамики кажется мне неспортивным. Как это затоптать?


 
Anatoly Podgoretsky ©   (2001-12-18 12:34) [1]

Key:=#0


 
Anatoly Podgoretsky ©   (2001-12-18 12:36) [2]

Извини ошибка, думал об OnKeyPress


 
Виктор Щербаков ©   (2001-12-18 12:42) [3]

А как быть с OnKeyDown? Недавно была такая же проблема.
Пришлось использовать RichEdit.


 
Владислав ©   (2001-12-18 12:58) [4]

Так какие проблемы?
Нужно добавить OnKeyPress и Key:=#0;


 
Teacher   (2001-12-18 13:02) [5]

Обрабатываю OnKeyUp, ничего не делаю кроме присвоения #0 при получении кодов, обрабатываемых в OnKeyDown.


 
Виктор Щербаков ©   (2001-12-18 13:04) [6]

to Владислав ©
Из хэлпа:
Keys that don"t correspond to an ASCII Char value (Shift or F1, for example) don"t generate an OnKeyPress event.


 
Владислав ©   (2001-12-18 13:06) [7]

> Виктор Щербаков © (18.12.01 13:04)

Да, но они, слава богу, и не "пищат".


 
Виктор Щербаков ©   (2001-12-18 13:09) [8]

Попробуй Ctrl + S например :)


 
Владислав ©   (2001-12-18 13:19) [9]

> Виктор Щербаков © (18.12.01 13:09)

Не "пищит", однако?

Еще что-нибудь придумаешь?

:)))


 
voronkov ©   (2001-12-18 13:19) [10]

Пробовал вставлять в OnKeyUp key := 0, проблема осталась. Ну елы-палы, что типа делать?


 
Dmitriy(new)   (2001-12-18 14:29) [11]

TMyEdit= class(TEdit)
...
procedure KeyPress(var Key: Char); override;
...
End;

procedure TMyEdit.KeyPress(var Key: Char);
begin
case key of
#1..#12,#14..#26,#28..#255:;
else key:=#0;
End;
End;


и не "пищат".


 
cdaDmitriy ©   (2001-12-18 15:22) [12]

work ?


 
panov ©   (2001-12-18 15:26) [13]

Попробуй вот так:
procedure TfDocEdit.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (Key = #27) then
begin
Key:=#0;
if (fDocEdit.ActiveControl is TEdit) then
begin
TEdit(fDocEdit.ActiveControl).Text := vPrevValue;
TEdit(fDocEdit.ActiveControl).Modified := False;
end;
end;
if (Key = #13) then
begin
Key:=#0;
Perform(WM_NEXTDLGCTL,0,0);
end;
end;


 
panov ©   (2001-12-18 15:27) [14]

И не забудь выставить
TfDocEdit.KeyPreview := True;


 
cdaDmitriy ©   (2001-12-18 15:32) [15]

>> panov ©
забыл KeyPreview:=true;
и вопрос что ты будешь делать если на форме /проекте 10 ..n TEdit ?

забыл ООП


 
voronkov ©   (2001-12-18 16:06) [16]

Чуваки, всем спасибо. Не пищит комбинация с
case key of
#13: begin
...
end;
else key:=#0;
End;
в OnKeyPress, правда немного непривычно работать с этим событием, так как привык работать с константами типа VK_...
К сожалению я пишу программу с большим объемом ручного ввода и зачастую разные TEdit должны по разному реагировать на одни и теже клавиши, в противном случае можно пользоваться событиями формы. Так что ООП тут не спасает отца русской демократии.


 
panov ©   (2001-12-18 16:12) [17]

>cdaDmitriy © (18.12.01 15:32)
Каждому прописываешь имя этого обработчика.


 
cdaDmitriy ©   (2001-12-18 16:15) [18]

> panov © забыл ООП
делаешь новый компонент ( T..Edit ) один раз

procedure KeyPress(var Key: Char); override;

и его используешь



Страницы: 1 вся ветка

Текущий архив: 2002.01.08;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.012 c
3-21989
Борис
2001-12-06 15:50
2002.01.08
При написании запроса в TQuery загружаются все записи.


1-22218
MARcoDEN
2001-12-15 17:13
2002.01.08
Вопрос о функции DeleteFile


14-22392
~Mag~
2001-11-10 13:27
2002.01.08
Народ как разблокировать реестр в виндовсе ???


6-22313
SB
2001-10-01 15:05
2002.01.08
Помогите сетевому недоучке! Пожайлуста


1-22080
Delphimun
2001-12-18 17:11
2002.01.08
Как загрузить курсор из ресурса, а потом сохранить его на диске?