|
#1
|
|||
|
|||
Привет.
Нужно вывести раскладку клавы на форму программы. Вот код: Код:
procedure TForm1.LangChange(var message: TMessage); var BufName: array[0..KL_NAMELENGTH-1] of Char; begin GetKeyboardLayoutName(@BufName); case Lo(StrToInt('$'+String(BufName))) of LANG_RUSSIAN : Label1.Caption:='RL'; LANG_ENGLISH : Label1.Caption:='EN'; else Label1.Caption:=' '; end; end; Что-то в моей проге с фаршем не работает. А вот если делать прогу с чистого листа - работает. Не могу понять, что я делаю не так. На какие вопросы мне обращать внимание? Подсобите пожалуйста. Частично нашел причину. Если прописываю Edit1.SetFocus, не работает вывод клавиатуры. Даже если, потом, удаляю фокус. Интересно, что там включается? Почему не работает код если кидать на форму edit или button и т. д. - вопрос открыт. Конечно, немного попотевши, решил проблему для своей проги через таймер. Последний раз редактировалось M.A.D.M.A.N., 27.09.2013 в 20:45. |
#2
|
||||
|
||||
А если так
Код:
case GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow, nil)) of 67699721: Label1.Caption:='EN'; 68748313: Label1.Caption:='RL'; else Label1.Caption:=' '; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
valvl63 (30.09.2013)
|