Главная страница
    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.05 c
2-1212668598
Alex
2008-06-05 16:23
2008.07.06
Компонент savedialog


3-1200987361
Воробей
2008-01-22 10:36
2008.07.06
Можна ли открыть базу данных не зная пароля администратора


15-1211534909
Reindeer Moss Eater
2008-05-23 13:28
2008.07.06
рашен процессор каминг сун


2-1213009498
Vyacheslav
2008-06-09 15:04
2008.07.06
Сменить вид иконки в трее


2-1212726295
Диниска
2008-06-06 08:24
2008.07.06
Юникод :((





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский