casa

Forum: "Principale";
Archivio attuale: 2002.01.08;
Scarica: [xml.tar.bz2];
giù

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


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

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



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

Key:=#XNUMX



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:=#XNUMX;




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

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



Viktor Scherbakov (2001-12-18 13:04) [6]

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



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

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

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



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

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



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

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

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

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

:)))




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

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



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

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

procedure TMyEdit.KeyPress(var Key: Char);
iniziare
case key of
#XNUMX..#XNUMX,#XNUMX..#XNUMX,#XNUMX..#XNUMX:;
else key:=#XNUMX;
End;
End;


и не "пищат".



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

lavoro ?



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

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



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

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




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

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

забыл ООП



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

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



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

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



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

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

procedure KeyPress(var Key: Char); override;

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




Pagine: 1 tutto il ramo

Forum: "Principale";
Archivio attuale: 2002.01.08;
Scarica: [xml.tar.bz2];

al piano di sopra

Top.Mail.Ru Yandeks.Metrika













Memoria: 0.8 MB
Ora: 0.082 c
3-21987
bene
XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
RxLib


7-22423
Alex_K_xelA
XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
Чтение секторов с CD-ROM


1-22104
DerZky
XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
Come confrontare le date.


7-22428
Егор Матвеев
XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
Исходный текст HTML страницы


6-22270
Ajax
XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
У меня тут возникло XNUMX вопроса про почту.





afrikaans albanese Arabic armeno Azero basco bielorusso Bulgarian catalano Cinese (semplificato) Cinese (tradizionale) croato Ceco danese Dutch Inglese estone filippina Finnish Francese
galiziano georgiano Tedesco greco Creolo haitiano ebraico hindi ungherese islandese Indonesian irlandese Italiano Giapponese Korean lettone lituano macedone Malay maltese Norwegian
persiano polacco Portoghese rumeno Russian serbo Slovak sloveno Spagnolo swahili Swedish Thai turco ucraino Urdu vietnamita gallese yiddish bengalese bosniaco
Cebuano esperanto Gujarati Hausa Hmong Igbo giavanese kannada khmer lao latino maori marathi mongolo nepali punjabi somalo tamil telugu Yoruba
zulù
Английский Francese tedesco italiano portoghese russo spagnolo