Форум: "Основная";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];
ВнизРаскладка клавиатуры. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c