![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Будет ли нормальным повесить 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]А зачем постоянно ее проверять ? Не проще ли только по событиям - напр. нажатиям клавиш, получениям фокуса ввода и т.п.