主页

论坛:“主要”;
当前存档:2002.01.08;
下载:[xml.tar.bz2];
向下

Как заставить TEdit не генерить звуковой сигнал при включенном обработчике нажатий клавиш. 找到类似的分支


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.



弗拉迪斯拉夫(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.



弗拉迪斯拉夫(2001-12-18 13:06) [7]

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

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



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

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



弗拉迪斯拉夫(2001-12-18 13:19) [9]

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

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

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

:)))




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

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



德米特里(新)(2001-12-18 14:29) [11]

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

procedure TMyEdit.KeyPress(var Key: Char);
开始
case key of
#XNUMX..#XNUMX,#XNUMX..#XNUMX,#XNUMX..#XNUMX:;
else key:=#XNUMX;
结束;
结束;


и не "пищат".



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

work ?



帕诺夫(2001-12-18 15:26) [13]

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



帕诺夫(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
...
结束;
else key:=#XNUMX;
结束;
в OnKeyPress, правда немного непривычно работать с этим событием, так как привык работать с константами типа VK_...
К сожалению я пишу программу с большим объемом ручного ввода и зачастую разные TEdit должны по разному реагировать на одни и теже клавиши, в противном случае можно пользоваться событиями формы. Так что ООП тут не спасает отца русской демократии.



帕诺夫(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;

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




Страницы: 1 整个分支

论坛:“主要”;
当前存档:2002.01.08;
下载:[xml.tar.bz2];

楼上

Top.Mail.Ru Yandeks.Metrika













内存:0.8 MB
时间:0.036 c
6-22311
大脚
XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
Удалённо


7-22449
Schummi
XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
Windows收藏夹


4-22504
师Besa
XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
WinExec neponyatka


1-22118
VLV
XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
组件


14-22386

XNUMX-XNUMX-XNUMX XNUMX:XNUMX
2002.01.08
Интересно? Насколько?





南非荷兰语 阿尔巴尼亚人 阿拉伯语 亚美尼亚 阿塞拜疆 巴斯克 白俄罗斯 保加利亚语 加泰罗尼亚 简体中文 中国(繁体) 克罗地亚 捷克 丹麦语 荷兰人 英语 爱沙尼亚语 菲律宾人 芬兰 法文
加利亚西语 格鲁吉亚语 德语 希腊语 海地克里奥尔语 希伯来语 印地语 匈牙利 北日耳曼语 印度尼西亚人 爱尔兰语 意大利语 日语 韩语 拉脱维亚 立陶宛 马其顿 马来语 马耳他语 挪威语
波斯语 波兰语 葡萄牙语 罗马尼亚 俄语 塞尔维亚 斯洛伐克 斯洛文尼亚 西班牙语 斯瓦希里 瑞典语 泰国人 土耳其 乌克兰 乌尔都语 越南人 威尔士语 意第绪语 孟加拉 波斯尼亚
宿务 世界语 古吉拉特语 豪萨语 苗族 伊博 爪哇 卡纳达语 高棉 老挝 拉丁语 毛利 马拉 蒙古人 尼泊尔 旁遮普 索马里 泰米尔人 泰卢固语 约鲁巴语
祖鲁
英文 Французский Немецкий Итальянский Португальский 俄文 Испанский