![]() |
Alle Forms gleichzeitig schließen?
Hallo zusammen.
Ich habe mehrere Formen mit Show geöffnet. Giebt es eine Möglichkeit alle geöffneten Formen zugleich zu schließen? |
AW: Alle Forms gleichzeitig schließen?
Nur eine Idee (ungetestet):
Delphi-Quellcode:
for i := Screen.FormCount - 1 downto 0 do
if Screen.Forms[i] <> Application.MainForm then Screen.Forms[i].Close; |
AW: Alle Forms gleichzeitig schließen?
Je nach dem wie Du die Fenster erstellst, bei uns üblicherweise dynamisch
Delphi-Quellcode:
sorry, hatte nicht richtig gelesen, statt Hide halt close ...
procedure TForm1.Button1Click(Sender: TObject);
begin With TForm2.Create(self) do show; end; Procedure CloseForms(Owner:TComponent;Recursive:Boolean=true); var i:Integer; begin for I := 0 to Owner.Componentcount - 1 do if Owner.Components[i] is TForm then begin if Recursive then CloseForms(Owner.Components[i]); TForm(Owner.Components[i]).Close; end; end; procedure TForm1.Button2Click(Sender: TObject); begin CloseForms(Self); end; |
AW: Alle Forms gleichzeitig schließen?
Was ist besser, Formen dynamisch oder auf "herkömmlicher" Weise zu erstellen?
|
AW: Alle Forms gleichzeitig schließen?
Was ist besser: Brot oder Brötchen? Das kann man halt nicht pauschal beantworten. Wenn Du nicht allzuviele Formulare mit tausenden Komponenten verwendest, kannst Du IMHO ruhig alles beim Alten lassen. Die Formulare werden dann zum Programmstart komplett geladen und verbrauchen dementsprechend Arbeitsspeicher. Erzeugst Du sie hingegen dynamisch, hast Du mehr Kontrolle über den Speicherverbrauch, aber eben auch die Verantwortung dafür.
|
AW: Alle Forms gleichzeitig schließen?
Es kommt auch darauf an, ob man eine oder n Instanzen der Formulare benötigt.
Bei n Instanzen sollte man alle diese Formulare halt dynamisch erstellen. So wie ich aus deinen bisherigen Fragen herauslesen würde, benötigst du so etwas wie einen ViewController, der dir diese Formulare erzeugt, anzeigt und dann wieder ins Nirwana schickt, wenn dieser ViewController entsorgt wird. Dann brauchst du nur eine Instanz erzeugen und alles ist wie gewünscht da ... und beim entsorgen ist alles wieder sauber ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18: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