Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Delphi (http://forum.oszone.net/showthread.php?t=30764)

Roman Go 23-11-2002 11:43 209997

Каким образом можно перехватывать сообщения виндовс... а заодно, если у кого есть какие виды сообщений есть, поделитесь, если не жалко, желательно на русском языке...

FormerVla 24-11-2002 14:02 209998

>Roman Go


Пример:
перехватываем собщение WM_NСHITTEST.
Для этого пишем процедуру:
interface
uses
*Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
*Dialogs, StdCtrls;
type
*TForm1 = class(TForm)
* * private
* *{ Private declarations }
*public
*procedure AllMove(var Msg:TMessage);message WM_NСHITTEST;
{ Public declarations }
*end;
var
*Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.AllMove(var Msg:TMessage);
begin
inherited;
if Msg.Result=1 then Msg.Result:=2;
end;

end.
Когда мы потащим форму мышью за произвольное место (если мышь не на границе формы, не на заголовке и не над кнопками системного меню, то без перехвата Msg.Result =1 ), заработает наша процедура и подменит Msg.Result на 2 (если мышь на заголовке, то без перехвата Msg.Result =2) - Windows будет обманута, решит, что мышь над заголовком и мы сможем перетащить форму за любое место.
:)

[s]Исправлено: Vla, 21:09 24-11-2002[/s]


[s]Исправлено: Vla, 21:24 27-11-2002[/s]

Roman Go 25-11-2002 04:22 209999

Цитата:

собщение WM_NСHITTEST
 а что это за сообщение... где вообще можно почитать (только чтобы не в магазин идти) как с ними работать и какие возможности появляются при работе с сообщениями Windows...

vasketsov 25-11-2002 13:53 210000

Roman Go
Цитата:

где вообще можно почитать (только чтобы не в магазин идти)
msdn.microsoft.com

Замечение к примеру: вроде в декларации AllMove надо var добавить или не надо?

Roman Go 26-11-2002 03:58 210001

Цитата:

почитать
в смысле по русски почитать...:(

FormerVla 27-11-2002 20:30 210002

>vasketsov
Цитата:

Замечение к примеру: вроде в декларации AllMove надо var добавить или не надо?
Спасибо за замечание.
Без var работать не будет.
Описка.
:shuffle:


Время: 22:21.

Время: 22:21.
© OSzone.net 2001-