Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.11;
Скачать: CL | DM;

Вниз

Раскладка клавиатуры.   Найти похожие ветки 

 
JohnKorsh ©   (2007-01-18 11:11) [0]

Не поможет ли кто грамотно отловить сообщение. Всю жизнь за меня это делал Delphi, я только писал обработчики, а тут понадобилось отловить переключение раскладки и не выходит. Я делаю так:

 private
   { Private declarations }
   procedure Key_Layoyt_Cng (var a :TMessage); message WM_INPUTLANGCHANGE;

procedure TForm1.Key_Layoyt_Cng (var a :TMessage);
 begin
  ShowMessage (‘Done.’);
  Beep;
 end;

Не "пищит".
В чём ошибка?


 
Elen ©   (2007-01-18 12:17) [1]


> JohnKorsh

Может лучше WM_INPUTLANGCHANGEREQUEST?


 
JohnKorsh ©   (2007-01-18 12:32) [2]

Спасибо, но не помогло.


 
MBo ©   (2007-01-18 12:52) [3]

эти сообщения приходят контролу, имеющему фокус


 
Elen ©   (2007-01-18 12:53) [4]


> Не "пищит".

Не пишит, а тункает. После того как я нажимаю (в твоем коде) на OK в сообшении от  ShowMessage (‘Done.’);
пишать будет от windows.beep(1000,1000);


 
Игорь Шевченко ©   (2007-01-18 16:20) [5]

Ловить такое сообщение лучше всего через Application.OnMessage, если только не стоит цель отслеживать переключение у отдельных контролов


 
Джо ©   (2007-01-18 16:25) [6]

> [5] Игорь Шевченко ©   (18.01.07 16:20)
> Ловить такое сообщение лучше всего через Application.OnMessage,
> если только не стоит цель отслеживать переключение у отдельных
> контролов

Это сообщение (WM_INPUTLANGCHANGE) не должно, вроде, попадать в Application.OnMessage.


 
Игорь Шевченко ©   (2007-01-18 17:04) [7]

Джо ©   (18.01.07 16:25) [6]

Да, я WM_INPUTLANGCHANGEREQUEST ловлю


 
JohnKorsh ©   (2007-01-19 09:39) [8]

Извините, а если есть время, то часть кода с отловом message с помощью  Application.OnMessage можно,а?


 
Elen ©   (2007-01-19 09:43) [9]


> Извините, а если есть время, то часть кода с отловом message
> с помощью  Application.OnMessage можно,а?

Какие проблемы? Лови :

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, AppEvnts;

type
 TForm1 = class(TForm)
   procedure ApplicationEvents1Message(var Msg: tagMSG;
     var Handled: Boolean);
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
 var Handled: Boolean);
begin
if msg.message= WM_INPUTLANGCHANGEREQUEST then caption:=caption+"w";
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage:=ApplicationEvents1Message;
end;

end.


 
JohnKorsh ©   (2007-01-19 09:51) [10]

Спасибо. Заработало.



Страницы: 1 вся ветка

Текущий архив: 2007.03.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.072 c
2-1172061997
Аликъ
2007-02-21 15:46
2007.03.11
Listview нумерация строк


15-1171467679
Vlad Oshin
2007-02-14 18:41
2007.03.11
как вставить в html элемент (в SELECT) значение? tWebBrowser


15-1171633073
газонокосильщик
2007-02-16 16:37
2007.03.11
Oracle 9.2, хранимая процедура на Java


15-1171352361
novill
2007-02-13 10:39
2007.03.11
У двоечников сезон пересдач начался?


2-1171730363
FIL-23
2007-02-17 19:39
2007.03.11
как использовать переменные из других unit ов (form)