![]() |
Re: Positionen aller Forms wiederherstellen
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Heiko,
danke erstmal! Zitat:
Ich habe eine 2. Variante. Die funktioniert immer dann, wenn das Programm frisch gestartet wird. Wenn ich aber das Fenster innerhalb einer laufenden Instanz mehrfach öffne und die Sub-Form zuletzt vor dem Schließen maximiert habe, dann klappt es auch nicht :wall: Zitat:
Zitat:
Zitat:
Gruß, Alex |
Re: Positionen aller Forms wiederherstellen
Hallo,
Form-Vererbung findest im Handbuch bzw. in der Hilfe-Datei. WP.Length ist mir jetzt auch klar TWindowPlacement ist ein Record. Ein Zeiger wird an Windows übergeben, damit weiss Windows nicht, wie gross bzw. wie viele Felder der hat. Es könnten ja mit neuen Windows-Versionen neue Felder hinzukommen. Length ist meistens das 1. Feld des TRecords. Indem du ihm "deine" Record-Länge angibst, weiss Windows, welche Record-"Version" du hast. Zu var_2 Klappt bei mir mit einer Ausnahme, Maximized wird falsch geladen. Das musst du selber abfangen.
Delphi-Quellcode:
ReadBinaryData(Wnd.Name, Pos, SizeOf(TPos));
CloseKey; Wnd.WindowState:= Pos.WState; if Wnd.WindowState<>wsMaximized then begin Wnd.Left:= Pos.Left; Wnd.Top:= Pos.Top; Wnd.Width:= Pos.Width; Wnd.Height:= Pos.Height; end; Und bei der Gelegenheit solltest du mal deine Tab-Taste ölen, die hängt ;) Einzüge sind in der Regel 2 Leerzeichen, nicht Tab. Heiko |
Re: Positionen aller Forms wiederherstellen
Zitat:
Zitat:
Den Umweg über TWindowPlacement bin ich doch extra gegangen, damit ich auch bei einem maximierten Fenster die Abmessungen bekomme, die es im normalen Zustand (=wsNormal) hat. Wenn ich jetzt die Werte zurück auf das Fenster übertrage, soll es ja auch maximiert sein. Aber versuche mal, mit Deinem Code ein so maximiertes Fenster zu minimieren. Das wird ohne das Zuweisen der Werte für Left, Top, ... nicht klappen. Bei mir kommen dann so Sachen wie -4 bei Top und Left heraus. Ein Klick auf den Minimieren-Button quittiert das System dann mit einem einfachen statt doppelten Rahmen aber das Fenster bleibt dann riesig. Bei mir funktioniert die 2. Variante des Codes jetzt komischer Weise... Gruß, Alex |
Re: Positionen aller Forms wiederherstellen
Hallo,
dann dreh es halt um
Delphi-Quellcode:
Das Problem kommt,weil du vorher zuerst Maximized und dann Left/Top gesetzt hast
Wnd.Left:= Pos.Left;
Wnd.Top:= Pos.Top; Wnd.Width:= Pos.Width; Wnd.Height:= Pos.Height; Wnd.WindowState:= Pos.WState; Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:05 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 by Thomas Breitkreuz