Определить, что нажата русская буква.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Определить, что нажата русская буква.

Сообщение Luxor » 03.09.2010 18:58:28

Обрабатываю событие
Edit1KeyPress(Sender: TObject; var Key: char);
При этом делаю выдачу сообщения
ShowMessage(Key);
Когда нажимаю латинскую букву - сообщение нормальное - что нажал - то получил. А когда русскую - пустое окно сообщения. Как мне определить что нажата русская буква и какая это буква?
Luxor
новенький
 
Сообщения: 72
Зарегистрирован: 10.06.2010 19:30:43

Re: Определить, что нажата русская буква.

Сообщение VirtUX » 03.09.2010 19:05:11

Обрабатывай
Edit1UTF8KeyPress(Sender: TObject; var UTF8Key: TUTF8Char);
Аватара пользователя
VirtUX
энтузиаст
 
Сообщения: 880
Зарегистрирован: 05.02.2008 10:52:19
Откуда: Крым, Алушта

Re: Определить, что нажата русская буква.

Сообщение @Ilya@ » 03.09.2010 19:07:06

а событие UTF8PressKey не канает?
Код: Выделить всё
procedure TForm1.Edit1UTF8KeyPress(Sender: TObject; var UTF8Key: TUTF8Char);
begin
  showMessage(UTF8Key);
end;

**
пока писал опередили уже

ну вобщем если все-так нужно событие keyPress без приставки UTF8, то можно и так символ показать:
Код: Выделить всё
showmessage(SysToUTF8(key)); 

(событие keypress срабатывает обычно после UTF8KeyPress)
@Ilya@
незнакомец
 
Сообщения: 2
Зарегистрирован: 26.05.2010 19:40:25

Re: Определить, что нажата русская буква.

Сообщение Luxor » 03.09.2010 19:21:20

Всё получилось. Спасибо.
Luxor
новенький
 
Сообщения: 72
Зарегистрирован: 10.06.2010 19:30:43

Re: Определить, что нажата русская буква.

Сообщение gNEV » 04.09.2010 19:47:55

Кстати если нажать Enter на KeyPad, событие UTF8KeyPress не обрабатывается. То ли баг, то ли так и задумано. Я дублирую нажатие Enter в onKeyPress.
gNEV
новенький
 
Сообщения: 26
Зарегистрирован: 23.07.2010 14:20:06
Откуда: Санкт-Петербург

Re: Определить, что нажата русская буква.

Сообщение Mr.Smart » 04.09.2010 20:29:01

Как то писал обработку (вот только не помню где и для чего), использовал оба события. Дело в том что UTF8KeyPress реагирует не на все нажатия и это видно в коде его реализации :wink:
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Определить, что нажата русская буква.

Сообщение VirtUX » 04.09.2010 21:23:33

Mr.Smart писал(а):UTF8KeyPress реагирует не на все нажатия

Естественно! Он же обрабатывает UTF8 кодировку, а не функциональные клавиши :)
Аватара пользователя
VirtUX
энтузиаст
 
Сообщения: 880
Зарегистрирован: 05.02.2008 10:52:19
Откуда: Крым, Алушта


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37

Рейтинг@Mail.ru