⤷ Immovable form

If you want that your form will immovable, then you can intercept WM_NCHITTEST message.
And after that, change Result parameter of this message:

type
  TForm1 = class(TForm)
  private
    procedure WMNCHITTEST(var Msg: TWMNCHitTest); 
      message WM_NCHITTEST;
    { Private declarations }
  public
    { Public declarations }
  end;
...
procedure TForm1.WMNCHitTest(var Msg: TWMNCHitTest);
begin
 DefaultHandler(Msg);
 if Msg.Result=HTCAPTION then
   Msg.Result:=0;
end;
More for developers