Показать сообщение отдельно
  #1  
Старый 01.11.2011, 14:31
WanderAlone WanderAlone вне форума
Прохожий
 
Регистрация: 01.11.2011
Сообщения: 3
Репутация: 10
По умолчанию WinAPI window messages (WM_INPUTLANG)

Имею:
MacBook Pro + Win 7 32bit (BootCamp) + Delphi XE2

Делаю:
Код:
type
  OnAppMessage = procedure(var Msg: TMsg; var Handled: Boolean) of Object;

  TfrmMain = class(TForm)
  private
    FAppMessage: OnAppMessage;
    procedure ApplicationMessage(var Msg: TMsg; var Handled: Boolean);
  end;

.....

procedure TfrmMain.FormCreate(Sender: TObject);
begin
  FAppMessage := Application.OnMessage;
  Application.OnMessage := Self.ApplicationMessage;
end;

procedure TfrmMain.ApplicationMessage(var Msg: TMsg; var Handled: Boolean);
begin
  if Msg.message = WM_INPUTLANGCHANGE then
    LayoutChange(LoWord(Msg.lParam));
end;

Получаю:
Моё приложение не получает такого сообщения вообще. Меняю раскладку с клавиатуры, меняю мышью в SystemTray - результат ноль.
Ни WM_INPUTLANGCHANGEREQUEST, ни WM_INPUTLANGCHANGE.

Вопрос:
Подскажите, как можно перехватить смену раскладки при таком раскладе :-)
Ответить с цитированием