>
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]