Вниз
Скачать: CL | DM;

Перехват нажатия русской буквы   Найти похожие ветки 

← →
sen   (2002-11-15 08:59) [0]

Добрый день
Подскажите, пожалуйста, как наилучшим способом определить, какая русская буква была нажата, обработав событие OnKeyDown формы?
То есть, например, если нажать клавиша "T" получить букву "Е",
А нажав последовательно "QWERT", получить "ЙЦУКЕ".
Можно, конечно, получив код клавиши, сопоставить два массива: русских и английских букв.
Но есть ли более интересный способ?
Типа виртуального ввода. Чтоб текст шел не в Едит, а в некую виртуальную структуру, которую можно было отобразить позже.
Спасибо.


← →
Victor_Cr ©   (2002-11-15 09:23) [1]

Да можно, приведеный текст - ввод пароля в едит. Он скрывает пароль т.к. место него выводиться уже другой текст, пароль считываеться в строку с которой и идет работа дальше:


procedure TPasswordDlg.edtPasswordKeyPress(Sender: TObject; var Key: Char);
const
St: string = "Suck in my, Baby... Password is hide for you...";
var
KeyInt: Integer;
begin
KeyInt := Ord(Key);
case KeyInt of
VK_DELETE://Delete key
begin
edtPassword.Clear;
sPassword := "";
end;
9 : Key := #0;//Tab key
13: bbnLoginClick(Sender);//Enter key
27: bbnCancelClick(Sender);//Escape key
else
if Key in [" ","0".."9","A".."z"] then
begin
sPassword := sPassword + Key;
Key := St[(Length(edtPassword.Text)+1) mod (Length(ST)+1)];// в этом месте идет вывод символа в "едит".
end;
end;
end;


Вообщем перехватываешь в обработчике ОнКейПресс(ОнКейДаун) код клавиши. И переприсваеваешь его...


← →
sen   (2002-11-15 09:56) [2]

Спасибо, но не совсем то.
Пусть на форме нет никаких компонент.
Мы начинаем нажимать клавиши.
В некоторой переменной получаем набор русских! символов, соответствующих нажатым клавишам.


← →
Victor_Cr ©   (2002-11-15 11:42) [3]

Почитай ФАКи... По теме програмного изменения раскладки Рус/Eng



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.012 c
3-98977
tanuha
2002-12-10 10:21
2002.12.30
Работа с DBGrid


4-99405
mikhasenko
2002-11-14 17:25
2002.12.30
Специалисты, подскажите!


7-99365
SeF
2002-10-24 23:03
2002.12.30
Как в сервисе получить список запущеных *.exe файлов


1-99075
vladnt
2002-12-19 14:53
2002.12.30
TObjectList


1-99086
Yakudza
2002-12-19 18:12
2002.12.30
Как узнать имя компонента на который кликнули.




   Наверх