![]() |
Form soll beim Wechsel von WindowState Max > Normal alte Werte annehmen (erledigt)
Im Prinzip geht es um Folgendes.
Ich habe ein Formular. Beim Beenden des Programms werden Größe, Position und WindowState gespeichert. Beim Öffnen des Programms wird das alles geladen und der WindowState Maximized angewendet, wenn der so gespeichert wurde. Wenn ich das Formular jetzt kleiner mache und es nicht mehr maximized ist, soll es die alten, gespeicherten Werte annehmen, genau das passiert aber nicht. Stattdessen ist es so in etwa 700x400px klein. An welche Stelle oder in welches Event muss dann welcher Code, damit beim Wechsel von Maximized in Normal die Formgröße angewandt wird? Ich habe es in OnCanResize versucht, hat aber keine Änderung gebracht. |
AW: Form soll beim Wechsel von WindowState Max > Normal alte Werte annehmen
|
AW: Form soll beim Wechsel von WindowState Max > Normal alte Werte annehmen
Hatte mich vertippt, da hatte ich es schon versucht.
Selbst im OnResize funktioniert es nicht. Auch mit Hilfe dieses Codes nicht ![]() Wenn ich bei wsNormal Width und Height setze, sehe ich dass es gesetzt wird. Aber kurz danach setzt Windows das Fenster wieder kleiner. |
AW: Form soll beim Wechsel von WindowState Max > Normal alte Werte annehmen
Bei einem maximierten Fenster werden die Normal-Position und -Größe in einer WindowPlacement-Struktur gespeichert. Diese Struktur kann man mit Get/SetWindowPlacement lesen bzw. beschreiben. In TCustomForm.CMShowingChanged findest du eine Code-Sequenz, die das rcNormalPosition Feld der Struktur beschreibt.
|
AW: Form soll beim Wechsel von WindowState Max > Normal alte Werte annehmen
Reicht das nicht schon, erst die Größe und dann den WindowState auf Maximized zu setzen?
Entweder habe ich etwas verpasst, aber das hier z.B. tut doch direkt was du möchtest:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin ClientWidth := 60; ClientHeight := 400; WindowState := TWindowState.wsMaximized; end; |
AW: Form soll beim Wechsel von WindowState Max > Normal alte Werte annehmen
Komisch, das hatte ich auch getestet und funktionierte nicht. Jetzt funktioniert es.
|
AW: Form soll beim Wechsel von WindowState Max > Normal alte Werte annehmen
Entweder vor dem Maximieren die originale Größe in einer Variable speichern,
oder beim Beenden/Speichern vorher wieder unmaximieren normalisieren und dann die eigentliche Größe auslesen oder Windows nach der originalen Größe fragen. ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 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