Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   globale Variablen? (https://www.delphipraxis.net/107364-globale-variablen.html)

olfrygt 26. Jan 2008 14:01


globale Variablen?
 
Hallo,

Ich hab gerade angefangen an einem kleinen Rechenprogramm zu basteln.
Es werden nach und nach mehrere Daten vom Nutzer abgefragt. Auf mehreren Seiten.

Mein 1. Problem:

Ich bin nur in der Lage ein einziges Formular zu erstellen und es mit allen Komponenten, die ich irgendwann mal brauche vollzupacken und dann mit der Visible-Eigenschaft zu arbeiten. Das ist, um genau zu sein, abartig unübersichtlich.

Also dachte ich mir, dass ich mehrere Formulare erstelle. Da aber jedes Formular über seine eigene Unit verfügt muss ich die Variablen, die bei der Nutzerabfrage entstehen, für alle Units und somit Formulare verfügbar machen.

Also hab ich nach dem Begriff "globale Variablen" gesucht. Alles was ich gefunden habe, war immer wieder der Hinweis, man solle erst gar keine globalen Variablen verwenden. Warum das so ist, und wie man das Problem anders lösen könnte hab ich nicht verstanden. Zumal ich noch nicht einmal weiß, wie ich das mache, was ich eigentlich nicht machen soll (globale Variablen deklarieren). ^^

Muss ich jetzt die Variable unter dem Abschnitt "Public" deklarieren oder weiter unten, wo schon "Var" steht?
Und muss ich unter "Uses" dann noch den anderen Units sagen, aus welchen anderen Units sie überall globale Variablen beziehen sollen?

MfG

patti 26. Jan 2008 14:39

Re: globale Variablen?
 
Erstelle eine Variable unter "Public" (z.B. in Form1). In der anderen Form (z.B. Form2) kannst du dann mit

Delphi-Quellcode:
Form1.VariablenName := Wert;
darauf zugreifen. Wenn du kompilieren willst, sollte eine Abfrage kommen, ob du die Form-Unit in die Uses-Liste übernehmen willst. Mit Ja bestätigen und neu starten. Fertig!

Patti

olfrygt 26. Jan 2008 16:20

Re: globale Variablen?
 
Dankeschön! :spin2:

*ausprobier*

Viktorii 29. Jan 2008 07:29

Re: globale Variablen?
 
Zitat:

Zitat von patti
Erstelle eine Variable unter "Public" (z.B. in Form1). In der anderen Form (z.B. Form2) kannst du dann mit

Delphi-Quellcode:
Form1.VariablenName := Wert;
darauf zugreifen.
Patti

Ich dachte immer, dass genau das (nicht über Properties sondern direkt auf (public-) Varialben zugreifen) schlechter Programmierstil wäre. Oder habe ich da was falsch verstanden?

DeddyH 29. Jan 2008 07:31

Re: globale Variablen?
 
Zitat:

Zitat von Viktorii
Ich dachte immer, dass genau das (nicht über Properties sondern direkt auf (public-) Varialben zugreifen) schlechter Programmierstil wäre. Oder habe ich da was falsch verstanden?

Du kannst natürlich auch eine Property mit einer Getter- und einer Settermethode schreiben.

Viktorii 29. Jan 2008 07:57

Re: globale Variablen?
 
Zitat:

Zitat von DeddyH
Zitat:

Zitat von Viktorii
Ich dachte immer, dass genau das (nicht über Properties sondern direkt auf (public-) Varialben zugreifen) schlechter Programmierstil wäre. Oder habe ich da was falsch verstanden?

Du kannst natürlich auch eine Property mit einer Getter- und einer Settermethode schreiben.

Ja genau, so dachte ich mir das... Ich dachte immer, wenn man das nicht so macht, also direkt setzt, wäre das pfui....

DeddyH 29. Jan 2008 08:07

Re: globale Variablen?
 
Direkt pfui würde ich nicht unbedingt sagen, auf jeden Fall besser als globale Variablen ;)

Aurelius 29. Jan 2008 08:11

Re: globale Variablen?
 
Was hat dass den eigentlich für Besondere Nachteile (public)? Habe noch nix gefunden was für mich persönlich dagegen sprechen sollte die zu nutzen...

RavenIV 29. Jan 2008 08:20

Re: globale Variablen?
 
Zitat:

Zitat von xX0815Xx
Was hat dass den eigentlich für Besondere Nachteile (public)? Habe noch nix gefunden was für mich persönlich dagegen sprechen sollte die zu nutzen...

Nehmen wir als Beispiel das Gaspedal am Auto.

Direkt über Public-Member:
Du steckst während dem Fahren den Arm aus dem Fenster und betätigst die Steuerklappe am Vergaser/Einspritzer.
Klappe drücken -> schneller fahren, Klappe loslassen -> langsamer fahren.

Nun per Setter-Methode:
Du definierst ein Gaspedal, das man bequem aus dem Innenraum des Autos drücken kann.
Nun kannst Du auch noch einige Sachen überprüfen, bevor die Steuerklappe geöffnet wird.
z.B. ist ein Gang eingelegt?
drehen die Räder schon durch?
ist überhaupt der Motor eingeschaltet?
usw.
Erst wenn alle Überprüfungen erfolgreich gewesen sind, wird die Klappe geöffnet und das Auto fährt.

Aurelius 29. Jan 2008 08:24

Re: globale Variablen?
 
Ich könnte doch aber auch mit weiteren public-Variablen prüfen ob die anderen Bedingungen erfüllt sind und dann die Variable ändern, oder?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:06 Uhr.
Seite 1 von 3  1 23      

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