Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.07.06;
Скачать: [xml.tar.bz2];

Вниз

Хук не работает, подскажите в чем дело ...   Найти похожие ветки 

 
TBase_Tree   (2008-06-05 14:40) [0]

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.


 
Игорь Шевченко ©   (2008-06-05 14:45) [1]

Сообщение форме не приходит, поэтому и не работает. А вот через Application.OnMessage вполне его можно поймать


 
Palladin ©   (2008-06-05 14:46) [2]

Видимо потому что этот "хук" посылается главному окну приложения, а не какой либо форме конкретно.


 
TBase_Tree   (2008-06-05 14:53) [3]


> Видимо потому что этот "хук" посылается главному окну приложения,
>  а не какой либо форме конкретно.


Точно. Убрал все компоненты из формы, хук отработал. :( Что делать?

> Application.OnMessage

Где можно прочесть инфу или есть примеры? плз.


 
Palladin ©   (2008-06-05 14:55) [4]

TApplicationEvents + F1


 
Vlad Oshin ©   (2008-06-05 16:03) [5]

а можно по msg.message получить что-то типа "WM_..."


 
Vlad Oshin ©   (2008-06-05 16:03) [6]

Удалено модератором


 
Vlad Oshin ©   (2008-06-05 16:03) [7]

Удалено модератором


 
Игорь Шевченко ©   (2008-06-05 16:05) [8]


> а можно по msg.message получить что-то типа "WM_..."


Можно. Путем написания функции


 
TBase_Tree   (2008-06-06 08:27) [9]


> а можно по msg.message получить что-то типа "WM_..."


Я это сделал так:

procedure TfrmLogin.Hook(var Msg: TMsg; var Handled: Boolean);
begin
if Msg.Message = WM_INPUTLANGCHANGEREQUEST then
   ..................
end;



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

Форум: "Начинающим";
Текущий архив: 2008.07.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.043 c
15-1211528405
Дмитрий С
2008-05-23 11:40
2008.07.06
irq


2-1212654838
redlord
2008-06-05 12:33
2008.07.06
эмуляция нажатия enter


15-1211448991
_mirage
2008-05-22 13:36
2008.07.06
9P на паскале


11-1191199661
Jon
2007-10-01 04:47
2008.07.06
GRushButton Accelerator


15-1211365772
MustDie
2008-05-21 14:29
2008.07.06
Нужна помощь!!! Как взаимодействовать с ActiveDirectory из Delph





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский