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 Formulare ohne die globale Standardvariable (https://www.delphipraxis.net/7517-formulare-ohne-die-globale-standardvariable.html)

urs.liska 14. Aug 2003 17:38


Formulare ohne die globale Standardvariable
 
Hallo,

ich habe eine Frage, ob ich folgendes 'ungestraft' machen kann:

Ich benötige für ein Programm eine Formularklasse, von der ich dynamisch beliebig viele Instanzen erzeugen und mit einem Array verwalten kann.

Es ist natürlich kein Problem, die Form in den Projektoptionen zu den 'verfügbaren Formularen' zu verschieben, so dass sie nicht beim Programmstart automatisch erzeugt wird.
Ich würde aber gerne - der Ordnung (?) halber - auch auf die Globale Variable, die ja von Delphi automatisch angelegt wird verzichten, denn ich benötige ja nie das Objekt 'Form2', sondern immer nur Objekte die ich beispielsweise so erzeuge:
Delphi-Quellcode:
Kontaktformulare[i] := TForm2.Create(Application);
Um die globale Variable loszuwerden, muss ich zwei Schritte durchführen: 1. die Variablendeklaration in der Form-Unit und 2. den Verweis in der Projekt-DAtei (den letzten Teil der Zeile in geschwungenen Klammern) entfernen.
Es scheint so auch alles zu funktionieren, ich sehe die Form nicht mehr in den Projektoptionen, und das Programm läuft trotzdem.
Da ich aber aus meiner 'aus-Büchern-lern-Zeit' daran gewöhnt bin, dass man Delphis Automatik möglichst nicht dazwischen funken soll, wollte ich hier fragen, ob jemand irgendwelche Probleme sieht, die ich bei diesem Ansatz übersehen habe.

Vielen Dank
Urs

JoelH 14. Aug 2003 17:57

Re: Formulare ohne die globale Standardvariable
 
ich sehe keinen, du verlagerst die Variable ja nur von der Unit2 in die Main.

PS: Ich machs genauso ;)

Christian Seehase 15. Aug 2003 12:44

Re: Formulare ohne die globale Standardvariable
 
Moin Urs,

wenn schon, dann richtig ;-)

Lösch auch noch die Application.CreateForm für das Formular aus der Projektdatei.

urs.liska 15. Aug 2003 14:46

Re: Formulare ohne die globale Standardvariable
 
Danke Christian, aber auf dem Weg, den ich genommen hatte (die Form zuerst in den Projektoptionen zu den 'verfügbaren Formularen' zu verschieben), wurde das von Delphi automatisch erledigt :-)

Das heißt aber, dass es auch von Deiner Seite keine Bedenken dagegen gibt?

Herzliche Grüße
Urs

negaH 15. Aug 2003 15:02

Re: Formulare ohne die globale Standardvariable
 
Hi Urs,

es ist sogar eine verdammt gute Methode, da nun die Objectverhältnisse, wer das Form erstellt und es auch wieder zerstören muß, exakt geklärt sind. Eines der schlimmsten Übel bei den Forms sind nämlich diese "globalen" Formular Variablen. Meine Lehrlinge nutzten immer wieder diese globalen Variablen statt innerhalb der Objectmethode mit Self auf die Eigenschaften des Formulars zuzugreifen. Damit sind diese globalen Form Variablen kontraproduktiv und ein großes Übel.

Sie wären halbwegs erträglich wenn das Formular sie bei seiner Zerstörung wieder auf nil setzen würde.

Gruß Hagen


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