maison

Forum: "Main";
Archive actuelle: 2002.01.08;
Télécharger: [xml.tar.bz2];
vers le bas

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


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



Viktor Scherbakov (2001-12-18 12:42) 3

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



Vladislav (2001-12-18 12:58) 4

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




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

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



Viktor Scherbakov (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.



Vladislav (2001-12-18 13:06) 7

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

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



Viktor Scherbakov (2001-12-18 13:09) 8

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



Vladislav (2001-12-18 13:19) 9

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

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

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

:)))




voronkov (2001-12-18 13:19) 10

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



Dmitriy (nouveau) (2001-12-18 14:29) 11

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

procedure TMyEdit.KeyPress(var Key: Char);
commencer
clé de cas de
#1..#12,#14..#26,#28..#255:;
else key:=#0;
Fin;
Fin;


и не "пищат".



cdaDmitriy (2001-12-18 15:22) 12

travail ?



panov (2001-12-18 15:26) 13

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



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

Чуваки, всем спасибо. Не пищит комбинация с
clé de cas de
#13: begin
...
fin;
else key:=#0;
Fin;
в 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;

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




Pages: 1 branche entière

Forum: "Main";
Archive actuelle: 2002.01.08;
Télécharger: [xml.tar.bz2];

à l'étage

Top.Mail.Ru Yandeks.Metrika













Mémoire: 0.83 MB
Heure: 0.053 c
7-22445
Kirill
2001-09-21 19:03
2002.01.08
Record в DLL


4-22483
Stropal
2001-11-03 10:57
2002.01.08
Параметры фукнции


6-22301
Китаец Что За
2001-10-10 14:45
2002.01.08
Склерозик что ли?


1-22008
Alligator
2001-12-17 11:46
2002.01.08
AIDE !!!


1-22030
Andrey Senchenko
2001-12-18 12:49
2002.01.08
Form.OnCloseQuery - Как обработать ?





afrikaans albanais Arabic arménien azerbaïdjanais basque Biélorusse Bulgare catalan Chinois simplifié) Chinois (traditionnel) croate Tchèque Danois Néerlandais English estonien Filipino Finlandais Français
galicien géorgien Allemand Grecque Créole haïtien hébreu Hindi Hongrois Islandais Indonesian irlandais Italien Japonais Coréen letton lituanien macédonien Malay maltais Norvégien
persan Polonais Portugais roumain Russe serbe Slovaque Slovène Espagnol Swahili Suédois Thai turc ukrainien Urdu vietnamien gallois yiddish bengali bosniaque
Cebuano espéranto gujarati Hause hmong Igbo Javanais Kannada Khmer lao latin maori Marathi mongol népalais punjabi somali tamil telugu yoruba
zoulou
Английский Français Allemand Italien Португальский Русский Espagnol