Einzelnen Beitrag anzeigen

Meta777

Registriert seit: 8. Sep 2004
Ort: Magdeburg
248 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Top und Left vom Formular -> Minuswerte

  Alt 31. Jan 2012, 09:58
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;

Geändert von Meta777 (31. Jan 2012 um 10:01 Uhr)
  Mit Zitat antworten Zitat