Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.12.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.12.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
1-99120
ProfiUgl
2002-12-18 11:16
2002.12.30
При смене профиля в WinXP пропала вся палитра компонентов


1-99158
drin
2002-12-18 00:54
2002.12.30
Создание класса


3-98995
Alathorne
2002-12-10 14:58
2002.12.30
MSSQL & user status= sleeping


14-99329
KGB
2002-12-10 11:22
2002.12.30
Набор компонентов ABC


4-99406
Vasily Terekhov
2002-11-14 12:21
2002.12.30
Перехват открытия и закрытия приложения....





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский