Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.028 c
2-1171639805
@gent
2007-02-16 18:30
2007.03.11
Создание папки


15-1171283075
WondeRu
2007-02-12 15:24
2007.03.11
Vista для разработчика


15-1171349221
chvank
2007-02-13 09:47
2007.03.11
Photoshop


3-1165934673
barakuda
2006-12-12 17:44
2007.03.11
Добавить поле


15-1171485355
malyar
2007-02-14 23:35
2007.03.11
ищу хост( php+apache+mysql)




   Наверх