Spätestens seit Vista "snapped" Windows aber die Fenster in den sichtbaren Bereich (+/- Rahmenbreite)...
Stimmt, und unsauber ist es auch - ABER man kann das ganze umgehen in dem man die WMGetMinMaxInfo abfängt.
Der folgende Code ermöglicht, dass das Formular größer sein kann als der Desktop. Zudem gibt es noch "MinTrackSize" in der Message (für Verschiebungen im negativen Bereich?).
Delphi-Quellcode:
TMyForm = class(TForm)
private
procedure WMGetMinMaxInfo(var AMsg: TWMGetMinMaxInfo); message WM_GETMINMAXINFO;
end;
implementation
procedure TPmDiscLayouterVCLForm.WMGetMinMaxInfo(var AMsg: TWMGetMinMaxInfo);
begin
//2011.03.17 MET: need to override the Windows-Vista/7 max size constraints...
AMsg.MinMaxInfo.ptMaxSize.X := 40000;
AMsg.MinMaxInfo.ptMaxSize.Y := 40000;
AMsg.MinMaxInfo.ptMaxTrackSize.X := 40000;
AMsg.MinMaxInfo.ptMaxTrackSize.Y := 40000;
end;