Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Restore-Button ohne ws_Maximized (https://www.delphipraxis.net/164841-restore-button-ohne-ws_maximized.html)

G-Baumstamm 2. Dez 2011 08:07

Restore-Button ohne ws_Maximized
 
Yoyo,

das maximize-Ereignis meiner Form funktioniert aufgrund des verwendeten Skins irgendwie nicht richtig, wenn die Form maximiert wird, werden Top und Left auf -8 gesetzt, Rechts und unten ist die Form dann auch 8 Einheiten zu groß. Manuelles Ändern der Größe bringt nix, da die fehlenden Bereiche garnicht erst gezeichnet werden, wenn ich Top und Left also einfach auf 0 setze hab ich einen 8 Einheiten großen, durchsichtigen Rand um meine Form.

Also hab ich das Maximize-Ereignis überschrieben und passe die Größe der Form über Screen.WorkAreaWidth & WorkAreaHeight selber an.

Das hat aber ein Problem: Da der Window-State auf ws_Normal bleibt bekomme ich natürlich keinen Restore-Button nachdem ich die Form "maximiert" habe. Kann man das irgendwie einrichten ? Ich könnte ne boolean Variable setzen, die alte Position & Größe speichern und dann dementsprechend beim erneuten Klicken auf Maximize ggf die alte Größe wiederherstellen, trotzdem würde der Button noch Maximize heißen und den falschen Tooltip haben ...

Jemand ne Idee ? ;) Danke !

SirThornberry 2. Dez 2011 14:00

AW: Restore-Button ohne ws_Maximized
 
Das Problem ist vermutlich dein verwendetes Theme. Das dürfte also nichts mit Delphi zu tun haben. Hast du mal geschaut ob bei anderen Programmen die maximierten Fenster einen Minuswert haben (mit GetWindowPlacement)?

G-Baumstamm 2. Dez 2011 15:11

AW: Restore-Button ohne ws_Maximized
 
Tatsache, ist mir noch nie aufgefallen, aber das ist immer, unabhängig vom Theme (also auch ohne) so ... allerdings wird die TitleBar bei normalen Applications nen bisschen angepasst, bei meinem Theme hab ich dann halt einfach nen halben Close-Button und so ...

Also wie gesagt, damit das bei meinem Theme vernünftig aussieht, müsste ich die Form zu (0,0) statt (-8,-8) schieben, aber das klappt ja auch, das ist nicht mein Problem. Auch alle anderen Eigenschaften (wie z.B. das man die Form bei wsMaximized nicht mehr bewegen kann) kann ich durch Abfangen von Messages selber ohne Probleme simulieren, das einzige was mir halt fehlt ist das Anzeigen des Restore-Buttons anstelle vom Maximize-Button, und da hatte ich gehofft, dass da wer ne Lösung weiß ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz