AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Top und Left vom Formular -> Minuswerte

Ein Thema von tofse · begonnen am 30. Jan 2012 · letzter Beitrag vom 31. Jan 2012
Antwort Antwort
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#1

AW: Top und Left vom Formular -> Minuswerte

  Alt 30. Jan 2012, 21:47
Spätestens seit Vista "snapped" Windows aber die Fenster in den sichtbaren Bereich (+/- Rahmenbreite), allerdings auch nur oben. Zieht man ein Fenster an seiner Titelleiste an den oberen Rand, wird es zudem maximiert.
Insgesamt ist der Ansatz aber schon eher ungünstig, und ein Umbau auf Umherschieben einer TImage-Komponente auf einem maximierten Formular mit bsNone nicht nur Funktionswiederherstellend, sondern auch erheblich "sauberer".
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Meta777

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

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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz