Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Хук не работает, подскажите в чем дело ... [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 вполне его можно поймать


Наверх

Титульная страница Поиск, карта сайта Написать письмо