原因就在这里,这段代码告诉Windows,点击哪里都和点击Caption一样,所以可以移动。
最好加一段代码,在边界时Message.Result给下列值
HTLEFT
HTBOTTOM
HTBOTTOMLEFT
HTBOTTOMRIGHT
HTRIGHT
HTTOP
HTTOPLEFT
HTTOPRIGHT
procedure TMainForm.WMNCHitTest(var Message: TWMNCHitTest);
begin
  inherited;
  Message.Result := HTCAPTION;
end;