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

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

Будет ли нормальным повесить GetKeyboardLayout на таймер? [D6, WinXP]


brestmarket ©   (2002-10-15 01:03:00) 

для проверки переключения пользователем раскладки в приложении и какой лучше задать период? Может другие варианты есть?


Игорь Шевченко   (2002-10-15 09:41:00) [1]

Для того, чтобы отслеживать переключение клавиатуры можно обрабатывать сообщение WM_INPUTLANGCHANGEREQUEST, примерно так:


procedure TfMain.ApplicationEventsMessage(var Msg: tagMSG;
var Handled: Boolean);
begin
if Msg.message = WM_INPUTLANGCHANGEREQUEST then begin
FCurrentKeyboardLanguage := LOWORD(Msg.lParam);
KeyboardLayoutsListBox.Repaint();
end;
end;



В кладовке, в разделе "Готовые программы" лежит программа EnumFunctions (кусок оттуда), которая показывает текущую раскладку клавиатуры и реагирует на ее переключение.

С уважением,


Юрий Зотов   (2002-10-15 05:24:00) [2]

Обычно такие "фоновые" проверки, управление доступностью контролов и прочие подобные вещи вешаются на Application.OnIdle.

Просто, надежно, не требует лишних компонентов, не перегружает излишне CPU.


PVOzerski   (2002-10-15 03:47:00) [3]

IMHO, можно на Application.OnIdle


Dr_Mike   (2002-10-15 02:20:00) [4]

А зачем постоянно ее проверять ? Не проще ли только по событиям - напр. нажатиям клавиш, получениям фокуса ввода и т.п.


Наверх

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