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/)
-   -   Delphi Alle Formulare zur Laufzeit anzeigen (https://www.delphipraxis.net/73512-alle-formulare-zur-laufzeit-anzeigen.html)

Baeuerle 19. Jul 2006 09:29


Alle Formulare zur Laufzeit anzeigen
 
Hallo zusammen,

ich habe eine neue Skin Komponente eingesetzt. Um das Verhalten des Programms schnell zu testen, möchte ich folgende Funktion:

Es sollen alle Formulare der Anwendung zur Laufzeit angezeigt werden. Ich habe mir das ungefähr so vorgestellt

Delphi-Quellcode:
procedure ShowAllForms;
var i: Integer;
begin
for i:=0 to pred(application.componentcount)do
 begin
 if Application.Components[i] is TForm then
  begin
  with TForm(Application.Components[i]).Create(Application)do
   begin
   try
   Showmodal;
   finally
    free;
    end;
   end;
  end;
 end;
end;
Problem:
Die meisten Formulare werden zur Laufzeit erzeugt und sind somit nicht in Application.Components aufgelistet!

Frage:
Wie kann ich mir alle Ableiteungen von TForm (eines Projektes) ausgeben lassen bzw. die Formulare erzeugen lassen ohne alles zu tippem???

Danke Baeuerle

dataspider 19. Jul 2006 10:47

Re: Alle Formulare zur Laufzeit anzeigen
 
Hi,

ich befürchte, dass das nicht funktionieren wird.
Damit du die Klassen findest, müssen sie IMHO mit RegisterClass registriert werden.
Damit würdest du ohnehin nicht darum herumkommen, in jeder Formular - Unit z.B. unde initialization die Procedure RegisterClass aufzurufen.
Und dann kannst du deine Formularklassen gleich in einer eigenen Liste speichern und dann mit

TFormClass(FormClassList[i]).Create ...

deine Formulare erzeugen.

Cu, Frank

Baeuerle 19. Jul 2006 10:58

Re: Alle Formulare zur Laufzeit anzeigen
 
Kannst du mir den Typ von FormClassList verraten?

Bzw. wie kann ich die Klassen in einem array oder so speichern?

dataspider 19. Jul 2006 11:07

Re: Alle Formulare zur Laufzeit anzeigen
 
Zitat:

Zitat von Baeuerle
Kannst du mir den Typ von FormClassList verraten?

Bzw. wie kann ich die Klassen in einem array oder so speichern?

Ich bevorzuge TList, es geht aber auch mit einem Array.

Cu, Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:30 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