![]() |
Das zuletzt geöffnete TForm finden?
Wie findet man heraus, welches Formular als letztes geöffnet wurde?
Ich kenne zwar Screen.ActiveForm, aber das ist nicht immer zwangsweise das zuletzt geöffnete Formular, da Screen.ActiveForm wohl eher darauf achtet, welches Fenster den Focus hat. Ich meine irgendwo mal gelesen zu haben, dass es eine Art Liste gibt, wo die gesuchte Information drin steht. |
AW: Das zuletzt geöffnete TForm finden?
Es gibt eine VCL
![]() |
AW: Das zuletzt geöffnete TForm finden?
Z-Order?
Das kenne ich von CSS. Aber bei Delphi kann ich mir nicht vorstellen, was es damit auf sich haben soll. |
AW: Das zuletzt geöffnete TForm finden?
Gar nicht so unähnlich. Schau Dir mal das
![]() |
AW: Das zuletzt geöffnete TForm finden?
Machs dir nicht zu schwer.
DU schreibst den Code der die Formulare öffnet. Wenn ich den Zusammenhang zu deinem anderen Thread richtig erkenne hast du sogar 1 Methode die am Ende all deine Formulare erstellt und öffnet. Jedes mal wenn du diese Methode aufrufst merkst du dir in dieser Methode das gerade geöffnete Fenster als das zuletzt geöffnete Fenster in einer Variable und Zack hast du jederzeit über diese Variable Zugriff auf das zuletzt geöffnete TForm ;) |
AW: Das zuletzt geöffnete TForm finden?
![]() |
AW: Das zuletzt geöffnete TForm finden?
Habe es nun folgendermaßen gelöst.
Meine Prozedur die für das Erstellen für Formulare zuständig ist, setzt das aktuelle Formular in einer public class-var. Da wo ich diese Variable dann benötige frage ich ab
Delphi-Quellcode:
Die von euch empfohlene Prozedur habe ich jedoch noch aufgeteilt in
if Assigned(TFormUtils.LastOpenedForm) and TFormUtils.LastOpenedForm.Visible then // LastOpenedForm vom Typ TForm
aForm := TFormUtils.LastOpenedForm else aForm := Screen.ActiveForm; // Fallback ? - ShowForm - CreateForm und - CreateAndShowForm (ruft CreateForm und ShowForm auf) Zusätzlich erweitert um einen Parameter der regelt, ob man Show oder ShowModal haben möchte. Und zuletzt noch ein Result vom Typ TModalResult. Funktioniert sehr gut auch mit komplexeren Aufrufen und Formularen. Eine Hand voll habe ich schon abgearbeitet, der Rest (viele weitere Hände voll) kommt noch. Heute habe ich aber keine Lust mehr. |
AW: Das zuletzt geöffnete TForm finden?
![]() |
AW: Das zuletzt geöffnete TForm finden?
Screen.OnActiveFormChange kannte ich gar nicht. Quasi eine globale, schon existierende Variable genau wie ich sie eben selber erstellt habe.
Ich setze sie lediglich. Ich setze nicht zurück auf nil, da ich das sonst in wirklich jedes OnClose jeder Form schreiben müsste. Daher meine If-Abfrage mit Assigned und Visible. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:29 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