Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Раскладка клавиатуры [D7]


Юрии ©   (2008-12-03 20:48:00) 

Как отловить момент переключение раскладки клавиатуры? Т.е. мне нужно запустить определенный код только в случае если пользователь переключил раскладку.

Спасибо.


Leonid Troyanovsky   (2008-12-04 18:59:00) [1]


> Труп Васи Доброго ©   (04.12.08 15:57) [2]

http://www.rsdn.ru/forum/message/3170996.1.aspx

--
Regards, LVT.


Труп Васи Доброго   (2008-12-04 15:57:00) [2]

> if Msg.message = WM_INPUTLANGCHANGEREQUEST then

Странно, но эта константа равна 80, а при переключении с рус. на eng. Msg.message=49304


Loginov Dmitry   (2008-12-03 23:13:00) [3]

function GetLanguage(lParam: Integer = 0): string;
var
 S: string;
begin
 SetLength(S, 8);
 if lParam <> 0 then
   ActivateKeyboardLayout(lParam , HKL_NEXT);
 GetKeyboardLayoutName(PChar(S));
 if S = '00000409' then
   Result := 'EN'
 else if S = '00000419' then
   Result := 'RU'
 else
   Result := '??';
end;

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
 var Handled: Boolean);
begin
 if Msg.message = WM_INPUTLANGCHANGEREQUEST then
   Caption := GetLanguage(Msg.lParam);
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо