![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Хук не работает, подскажите в чем дело ... [D2005, XP]
TBase_Tree © (2008-06-05 14:40:00)unit uLogin;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons;
type
TfrmLogin = class(TForm)
Panel1: TPanel;
GroupBox1: TGroupBox;
Memo1: TMemo;
GroupBox2: TGroupBox;
Label1: TLabel;
Label2: TLabel;
edPassword: TEdit;
edLogin: TEdit;
Button1: TButton;
Button2: TButton;
SpeedButton1: TSpeedButton;
procedure Hook(var Mes:TMessage); message WM_INPUTLANGCHANGEREQUEST;
private
//
public
end;
var
frmLogin: TfrmLogin;
implementation
{$R *.dfm}
// Не срабатывает этот Хук, подскажите пожалуйста в чем дело ??? :(
procedure TfrmLogin.Hook(var Mes: TMessage);
begin
ShowMessage('Hook');
end;
end.
TBase_Tree (2008-06-06 08:27:00) [1]
> а можно по msg.message получить что-то типа "WM_..."
Я это сделал так:
procedure TfrmLogin.Hook(var Msg: TMsg; var Handled: Boolean);
begin
if Msg.Message = WM_INPUTLANGCHANGEREQUEST then
..................
end;
Игорь Шевченко (2008-06-05 16:05:00) [2]
> а можно по msg.message получить что-то типа "WM_..."
Можно. Путем написания функции
Vlad Oshin (2008-06-05 16:03:00) [3]а можно по msg.message получить что-то типа "WM_..."
Vlad Oshin (2008-06-05 16:03:00) [4]Удалено модератором
Vlad Oshin (2008-06-05 16:03:00) [5]Удалено модератором
Palladin (2008-06-05 14:55:00) [6]TApplicationEvents + F1
TBase_Tree (2008-06-05 14:53:00) [7]
> Видимо потому что этот "хук" посылается главному окну приложения,
> а не какой либо форме конкретно.
Точно. Убрал все компоненты из формы, хук отработал. :( Что делать?
> Application.OnMessage
Где можно прочесть инфу или есть примеры? плз.
Palladin (2008-06-05 14:46:00) [8]Видимо потому что этот "хук" посылается главному окну приложения, а не какой либо форме конкретно.
Игорь Шевченко (2008-06-05 14:45:00) [9]Сообщение форме не приходит, поэтому и не работает. А вот через Application.OnMessage вполне его можно поймать