Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];

Вниз

OnKeyDown   Найти похожие ветки 

 
bg8 ©   (2006-01-25 11:52) [0]

Доброго времени суток, Мастера!

Вопрос прост до банальности - есть TEdit, есть обработчик события OnKeyDown, который при нажатии клавиши Enter производит typecast с сождержимым, передает значение поля Text процедуре... ну не важно чего он делает... А важно вот что - при нажатии Enter`а, когда TEDit в фокусе ввода, раздается стандартный виндузовый звук (типа Exclamation - не помню точно). Как от этого избавиться?


 
begin...end ©   (2006-01-25 12:07) [1]

В OnKeyPress: if Key = #13 then Key := #0


 
bg8 ©   (2006-01-25 19:11) [2]


> В OnKeyPress: if Key = #13 then Key := #0


К сожалению, Key имеет тип Word, а не Char, просто присваивание нулю ничего не дало, да и не могло дать, т.к. эта переменная передается в тело процедуры лишь как индикатор состояния...


 
bg8 ©   (2006-01-25 19:12) [3]

Извиняюсь, не заметил что имеется ввиду OnKeyPress, а не  OnKeyDown. А решить проблему нужно именно в обработчике OnKeyDown


 
stakan ©   (2006-01-25 19:42) [4]

if Key = VK_RETURN then Key := 0;


 
begin...end ©   (2006-01-25 20:07) [5]

> bg8 ©   (25.01.06 19:12) [3]

Боюсь, что простого решения в рамках одного только OnKeyDown не будет. При нажатии Enter edit"у сначала посылается сообщение WM_KEYDOWN, в результате чего вызывается обработчик OnKeyDown. Однако, кроме этого, WM_KEYDOWN транслируется системой в другое сообщение -- WM_CHAR, и оно приходит edit"у следующим (после WM_KEYDOWN). В результате вызывается OnKeyPress, и если внутри него не обнулить Key, стандартная реакция останется.


 
Leonid Troyanovsky ©   (2006-01-26 09:35) [6]


> bg8 ©   (25.01.06 19:12) [3]

>  А решить проблему нужно именно в обработчике  OnKeyDown


А почему именно там?

procedure TForm1.CMDialogKey(var msg: TCMDialogKey); // message cm_DialogKey;
begin
 if (msg.CharCode = vk_return) and
    (ActiveControl is TEdit) then
   msg.Result := 1
 else
   inherited;
end;


--
Regards, LVT.



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

Форум: "Основная";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.038 c
15-1139058841
VseHotjatIJaHo4u
2006-02-04 16:14
2006.02.26
Таймер, Т_Т


8-1127143353
Dem0n[74]
2005-09-19 19:22
2006.02.26
Форматы аудио


2-1139786804
kizam
2006-02-13 02:26
2006.02.26
не повтарение чисел


15-1138827650
Fenik
2006-02-02 00:00
2006.02.26
Странная местная фобия - боязнь анонимов


15-1139113561
atruhin
2006-02-05 07:26
2006.02.26
Oracle Database 10g Express Edition - есть ли ограничения в языке





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский