Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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:=#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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.008 c
6-22279
Денис
2001-07-28 22:08
2002.01.08
NMSMTP через прокси


1-22259
Крыс
2001-12-12 17:55
2002.01.08
Дорисовка кривых (дубль 2)


1-22161
Егор Булычев
2001-12-19 22:13
2002.01.08
Memo хелп!


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


1-22106
Andrey196
2001-12-19 18:24
2002.01.08
Извените за ламерский вопрос как распечатать image





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский