Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: CL | DM;

Вниз

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

 
Elast   (2004-04-29 14:47) [0]

Уважаемые мастера! Где-то ошибка - вроде-бы переключается клавиатура:

Нажимаю клавишу "т"

procedure DBGridEh1TegKeyPress(Sender: TObject; var Key: Char);
begin
 showmessage("press " + (key));         ---> Сначала здесь т
 Key := "";
end;

procedure DBGridEh1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
 showmessage("Down" + chr(key));        ---> Потом здесь N
 Key := 0;
end;


 
Vlad Oshin ©   (2004-04-29 14:48) [1]


> KeyDown

вроде всегда латинские коды дает


 
Elast   (2004-04-29 15:09) [2]

Для меня это новость. А как отловить нажатие рус?


 
Vlad Oshin ©   (2004-04-29 15:13) [3]


> Elast   (29.04.04 15:09) [2]

можть отказаться от кейдауна в пользу чего-то другого
или вычислив язык ввода по соответствию букв на клавиатуре


 
WebErr ©   (2004-04-29 15:36) [4]


> Elast   (29.04.04 15:09) [2]

Для меня тоже!
У меня всё по русски прекрасно выдаёт в наследнике того же TDBGridEh!


 
Elast   (2004-04-29 16:06) [5]

Ничего по русски не выдает и я не понимаю
1.почему если есть onKeyPress, то нет onKeyDown
2.как узнать какая раскладка клавы сейчас и как ее переключить


 
WebErr ©   (2004-04-29 16:17) [6]


> Elast   (29.04.04 16:06) [5]

Просто OnKeyDown указывает, какая клавиша нажата, а не какой символ введён, то есть надо клавишу узнать - используй OnKeyDown, а надо узнать символ - используй OnKeyPress.
Раскладка клавы - это Вам знать не нужно, разве только интереса ради...


 
Vlad Oshin ©   (2004-04-29 17:20) [7]


OnKeyDown
> какая клавиша нажата

а точнее код ее, Вы же пишите


> showmessage("Down" + chr(key));        

Потому как в OnKeyDown передается ВИРТУАЛНЫЙ КОД КЛАВИШИ, именно клавиши, а не символа (и символы, и стрелочки, и F1..F12, и ... А если нужен именно СИМВОЛ, то вам нужно OnKeyPress, сюда попадают именно символы, оттранслированные с учетом языка и раскладки.


> а надо узнать символ - используй OnKeyPress

вполне можно и OnKeyDown, если OnKeyPress не может быть использован по каким либо причинам


> Раскладка клавы - это Вам знать не нужно, разве только интереса
> ради...

для этого(см выше) и надо
Но Ваш вариант с OnKeyPress, конечно, проще и предпочтительнее

автору
GetKeyboardLayout посмотрите



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

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.036 c
1-1083363899
Zeon
2004-05-01 02:24
2004.05.16
FindFirst / FindNext


1-1083146791
karls
2004-04-28 14:06
2004.05.16
Каким свойствам убрать ограничение с memo?


4-1080557192
Nic
2004-03-29 14:46
2004.05.16
Два вопросика


1-1083235947
ArtIcons
2004-04-29 14:52
2004.05.16
Изменить иконку программы


1-1083352125
mr.Delphin
2004-04-30 23:08
2004.05.16
ФОКУС