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

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

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


Broot ©   (2002-02-01 11:57:00) 

Подскажите, как сделать в своей проге индикатор раскладки клавиатуры. Существует ли системное событие, связанное с переключением раскладки? Существует функция GetKeyboardLayoutName, но не хотелось бы опрашивать состояние клавы по таймеру.


BOS   (2002-02-12 13:12:00) [1]

Dimka Maslov, а неподскажешь, как сделать так, чтобы эти сообщения получала неактивная форма (или скрытая в трэе, наподобие известных прграмм переключения раскладок клавиатуры)


limon   (2002-02-11 15:22:00) [2]

С полгода назад уже выкладывал класс по работе с клавиатурой, но куда-то он делся.
Раз вопросы начали подниматься снова, выкладываю в кладовку еще раз.


Victor   (2002-02-11 08:37:00) [3]

можно ещё проще
{English} LoadKeyboardLayout("00000409", KLF_ACTIVATE);
{Russian} LoadKeyboardLayout("00000419", KLF_ACTIVATE);и так любой язык только посмотри в реестре какой код присваивать


Dimka Maslov   (2002-02-01 17:34:00) [4]

При смене языка форма получает сообщения WM_INPUTLANGCHANGEREQUEST/WM_INPUTLANGCHANGE


Broot   (2002-02-01 17:06:00) [5]

Dimich, спасибо конечно, но как это мне может помочь?


dimich   (2002-02-01 15:07:00) [6]

function GetLanguage: string;
var
p: PChar;
begin
GetMem(p, KL_NAMELENGTH);
try
GetKeyboardLayoutName(p);
Result := p;
finally
FreeMem(p, KL_NAMELENGTH);
end;
end;

////Где то там////
slan:=GetLanguage;
if slan="00000409" then Panel2.Caption:="En";
if slan="00000419" then Panel2.Caption:="Ru";


Broot   (2002-02-01 13:41:00) [7]

Если форма не активна в данный момент, но видна на экране, то такие способы не прокатят.


Chris   (2002-02-01 13:33:00) [8]

>Broot

Не хочешь опрашивать по таймеру - опрашивай по Form1.OnKeyUp и Form1.OnMouseMove.

Но тормозить, наверно, будет страшно...


IronHawk   (2002-02-01 12:13:00) [9]

Узнаешь по каким кнопкам в системе меняеться раскладка и опрашивай GetKeyboardLayoutName при нажатиях на эти клавиши!
и при приёме и передаче фокуса в проге и самой проге !


Наверх

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