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

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

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

Ответить
Luxor
новенький
Сообщения: 72
Зарегистрирован: 10.06.2010 19:30:43

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

Сообщение Luxor »

Обрабатываю событие
Edit1KeyPress(Sender: TObject; var Key: char);
При этом делаю выдачу сообщения
ShowMessage(Key);
Когда нажимаю латинскую букву - сообщение нормальное - что нажал - то получил. А когда русскую - пустое окно сообщения. Как мне определить что нажата русская буква и какая это буква?
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

Сообщение VirtUX »

Обрабатывай
Edit1UTF8KeyPress(Sender: TObject; var UTF8Key: TUTF8Char);
@Ilya@
незнакомец
Сообщения: 2
Зарегистрирован: 26.05.2010 19:40:25

Сообщение @Ilya@ »

а событие UTF8PressKey не канает?

Код: Выделить всё

procedure TForm1.Edit1UTF8KeyPress(Sender: TObject; var UTF8Key: TUTF8Char);
begin
  showMessage(UTF8Key);
end;

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

ну вобщем если все-так нужно событие keyPress без приставки UTF8, то можно и так символ показать:

Код: Выделить всё

 showmessage(SysToUTF8(key));  

(событие keypress срабатывает обычно после UTF8KeyPress)
Luxor
новенький
Сообщения: 72
Зарегистрирован: 10.06.2010 19:30:43

Сообщение Luxor »

Всё получилось. Спасибо.
gNEV
новенький
Сообщения: 26
Зарегистрирован: 23.07.2010 14:20:06
Откуда: Санкт-Петербург

Сообщение gNEV »

Кстати если нажать Enter на KeyPad, событие UTF8KeyPress не обрабатывается. То ли баг, то ли так и задумано. Я дублирую нажатие Enter в onKeyPress.
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Как то писал обработку (вот только не помню где и для чего), использовал оба события. Дело в том что UTF8KeyPress реагирует не на все нажатия и это видно в коде его реализации :wink:
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

Сообщение VirtUX »

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

Естественно! Он же обрабатывает UTF8 кодировку, а не функциональные клавиши :)
Ответить