Показать полную графическую версию : Delphi
Roman Go
23-11-2002, 11:43
Каким образом можно перехватывать сообщения виндовс... а заодно, если у кого есть какие виды сообщений есть, поделитесь, если не жалко, желательно на русском языке...
FormerVla
24-11-2002, 14:02
>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 будет обманута, решит, что мышь над заголовком и мы сможем перетащить форму за любое место.
:)
Исправлено: Vla, 21:09 24-11-2002
Исправлено: Vla, 21:24 27-11-2002
Roman Go
25-11-2002, 04:22
собщение WM_NСHITTEST а что это за сообщение... где вообще можно почитать (только чтобы не в магазин идти) как с ними работать и какие возможности появляются при работе с сообщениями Windows...
vasketsov
25-11-2002, 13:53
Roman Go
где вообще можно почитать (только чтобы не в магазин идти)
msdn.microsoft.com
Замечение к примеру: вроде в декларации AllMove надо var добавить или не надо?
Roman Go
26-11-2002, 03:58
почитать
в смысле по русски почитать...:(
FormerVla
27-11-2002, 20:30
>vasketsov
Замечение к примеру: вроде в декларации AllMove надо var добавить или не надо?
Спасибо за замечание.
Без var работать не будет.
Описка.
:shuffle:
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.