In addition to constraining the window's size, you should consider giving the user visual feedback for their attempts to resize.
Do this by handling the WM_NCHITTEST message: https://docs.microsoft.com/en-gb/windows/win32/inputdev/wm-nchittest
type
TForm1 = class(TForm)
protected
procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
end;
....
procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);
begin
inherited;
case Message.Result of
HTLEFT,HTRIGHT:
Message.Result := HTCAPTION;
HTTOPLEFT,HTTOPRIGHT:
Message.Result := HTTOP;
HTBOTTOMLEFT,HTBOTTOMRIGHT:
Message.Result := HTBOTTOM;
end;
end;