Autor Beitrag
spoof
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: Di 17.09.13 20:07 
Hallo, ich habe eine Frage bezüglich der Deklaration von Variablen.
Wie ich es in der Schule gelernt habe, sollen wir variablen immer im localen Bereich declarieren, in ausnahmefällen global.
Jetzt hab ich aber schon desöfteren gesehen dass viele oben im quelltext unter privat und public deklarieren.
Wo ist der unterschied? Und gibt es noch andere möglichkeiten?
IhopeonlyReader
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Di 17.09.13 20:14 
unter global sind sie überall nutzbar, also immer wenn die unit eingebunden ist.

Wenn sie unter private sind, besitzt jede klasse den typen !
hast du also form1, form2: TFormX;
so besitzt form1 eine variable und form2 eine variable, wäre sie global so hätten beide dieselbe.

andere möglichkeiten: private, public, global, local, (protected)

Moderiert von user profile iconNarses: Beiträge zusammengefasst

sonst schau dir mal folgenden Link an:
www.delphi-treff.de/...blen-und-konstanten/

_________________
Sucht "neueres" Delphi :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Mi 18.09.13 07:15 
user profile iconspoof hat folgendes geschrieben Zum zitierten Posting springen:
Wie ich es in der Schule gelernt habe, sollen wir variablen immer im localen Bereich declarieren, in ausnahmefällen global.

Ich würde das etwas anders formulieren. Denn es gibt zwischen "lokal" und "global" noch ziemlich viele Zwischenstufen. Ich würde den Schülern beibringen "Deklariert die Variablen so lokal wie möglich und so global wie nötig".

Mal ein paar Beispiele für die Abstufung:
  1. Deklaration innerhalb einer Procedure/Function: Die Variable kann nur innerhalb dieser Procedures/Functions genutzt werden.
  2. Deklaration im Abschnitt "private" einer Klasse: die Variable kann innerhalb der Klasse (Formulare sind auch Klassen) und von Klassen, die sich in der selben Unit befinden, von allen Procedures/Functions genutzt werden.
  3. Deklaration im Abschnitt "protected" einer Klasse: die Variable kann von der Klasse selbst und von abgeleiteten Klassen genutzt werden.
  4. Deklaration im Abschnitt "public" einer Klasse: Auf die Variable kann "von außen", also über eine Instanz der Klasse, zugegriffen werden.
  5. Deklaration Global: die Variable kann von überall aus angesprochen werden.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Mi 18.09.13 08:18 
Wobei man im public- bzw. published-Abschnitt üblicherweise keine Variablen deklariert, sondern Properties, die intern dann auf private Variablen zugreifen.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19322
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 18.09.13 08:35 
user profile iconWasWeißDennIch hat folgendes geschrieben Zum zitierten Posting springen:
Wobei man im public- bzw. published-Abschnitt üblicherweise keine Variablen deklariert, sondern Properties, die intern dann auf private Variablen zugreifen.
Das sind dort streng genommen Felder und keine Variablen, wenn man es genau nimmt. ;-)