Вниз
Скачать: 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.019 c
14-99320
asdf
2002-12-06 17:55
2002.12.30
Delphi & .NET


14-99269
NOV
2002-12-09 00:24
2002.12.30
DOA для DELPHI 6


8-99207
Porolonchick
2002-09-12 15:27
2002.12.30
Формы.


1-99136
@andrew
2002-12-18 13:33
2002.12.30
ПРИВЕТ ВСЕМ! Можно ли как-то в режиме Run-Time определить


8-99200
Серик
2002-09-13 18:14
2002.12.30
Как определить уровень сигнала подавамого на звуковую карту???




   Наверх