Entwickler-Ecke

Sonstiges (Delphi) - HILFE brauche ganz schnell hilfe, schreibe morgen klausur :(


guido12345 - Mo 01.11.10 22:36
Titel: HILFE brauche ganz schnell hilfe, schreibe morgen klausur :(
hallo,

also ich schreibe morgen eine klausur und brauche ganz dringend hilfe zu folgender frage (es geht allerdings um das programmieren bei lazarus...) :

- was ist der unterschied zwischen einer globalen und einer lokalen feldvariable? bzw. wo wird was von beiden deklariert ?
- kann ich in lazarus unter "implementation" schreiben: "type ArrayName = array[hier kommt dann der indexbereich hin] of Elementtyp;" ? ist ArrayName dann eine globale Feldvariable?

ich hoffe ihr könnt mir gaanz schnell bei meinen hoffentlichen simplen fragen helfen :) viieeeeelen dank im vorraus :)


Delete - Mo 01.11.10 22:42

Da muss ich leider etwas raten. Eine globale Feldvariable ist mir erst mal nicht bekannt. Aber ich denke es sind Attribute oder Eigenschaften einer Klasse gemeint. Global könnte meinen, dass die Variable im Publik-Bereich deklariert ist, während hingegen eine lokale Feldvariable wohl im Private-Bereich deklariert ist.

Und ob dein Array jetzt lokal oder global ist, liegt daran, wo du die Variable deklariert hast.


elundril - Mo 01.11.10 22:43

zum ersten teil der Frage kann ich nur folgendes sagen:

Christians Crashkurs [http://www.christian-stelzmann.de/index_tutorials_crashkurs.html]
Delphi-Wikibook [http://de.wikibooks.org/wiki/Programmierkurs:_Delphi]

zum zweiten teil: ja, das wäre dann eine globale variable. (was ich so damals gelernt habe)

btw: ändere bitte das thema deines Topics. zb auf "Variablen: global & lokal", damit man sich auskennt was du von einem willst.

lg elundril


Delete - Mo 01.11.10 22:47

Ich sehe gerade, er hat sie unter Implementation deklariert. da ist das jetzt so eine Sache, denn dann ist sie nur Unit global im Implementation Abschnitt. Also irgendwie auch wieder lokal.


elundril - Mo 01.11.10 22:52

user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Ich sehe gerade, er hat sie unter Implementation deklariert. da ist das jetzt so eine Sache, denn dann ist sie nur Unit global im Implementation Abschnitt. Also irgendwie auch wieder lokal.


gibt es dann in delphi globale variablen? weil so richtig global kenn ich dann keine eigentlich, da es doch immer höchstens in der Unit global ist, oder?

lg elundril


ub60 - Mo 01.11.10 23:00

Im deutschen "Programmiersprachen-Raum" wird der Begriff Feld in zweifacher Bedeutung verwendet:

Globale Variable gelten "überall" innerhalb der aktuellen Unit und können im Interface-Teil, im Implementation-Teil oder als Teil des Formular-Objektes in der Formulardeklaration deklariert werden (dann gelten Sie in allen Methoden des Formulars).
Lokale Variable werden innerhalb einer Funktion oder Prozedur gleich nach der Kopfzeile (vor begin) deklariert und gelten dann auch nur innerhalb dieser Funktion oder Prozedur.

>kann ich in lazarus unter "implementation" schreiben: "type ArrayName = array[hier kommt dann der indexbereich hin] of Elementtyp;" ?
ja

>ist ArrayName dann eine globale Feldvariable?
nein, Arrayname ist nur ein Typ. Eine Variable dieses Typs ist dann global.

ub60


Delete - Mo 01.11.10 23:03

user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
gibt es dann in delphi globale variablen? weil so richtig global kenn ich dann keine eigentlich, da es doch immer höchstens in der Unit global ist, oder?

Die Form-Variable in der VCL bei GUI-Anwendungen ist zum Beispiel global. Alles was im Interface-Abschnitt deklariert ist, ist unit-übergreifend global.


guido12345 - Mo 01.11.10 23:12

danke schonmal für die vielen antworten...und da fällt mir grad was ein :)
also wenn ich unter "implementation" und über die button-klick-prozeduren in lazarus eine variable deklariere , nämlich so: "var Variable1 : array[1..10] of integer;" als beispiel eben, dann ist Variable1 doch eine globale Feldvariable oder? und wenn ich in einer prozedur (oder button-klick-prozedur) oder in einer funktion zwischen dem prozedurkopf bzw. dem funktionskopf und "begin", also bei "var" variablen deklariere dann sind diese variablen lokal, denn sie sind ja nur im rumpf der prozedur / funktion, und nicht "überall", also nicht methodenübergreifend, bekannt, richtig?


Delete - Mo 01.11.10 23:20

Richtig. Zumindest der zweite Teil, den ersten habe ich nicht ganz verstanden. ;)


ub60 - Mo 01.11.10 23:21

user profile iconguido12345 hat folgendes geschrieben Zum zitierten Posting springen:
also wenn ich unter "implementation" und über die button-klick-prozeduren in lazarus eine variable deklariere , nämlich so: "var Variable1 : array[1..10] of integer;" als beispiel eben, dann ist Variable1 doch eine globale Feldvariable oder? und wenn ich in einer prozedur (oder button-klick-prozedur) oder in einer funktion zwischen dem prozedurkopf bzw. dem funktionskopf und "begin", also bei "var" variablen deklariere dann sind diese variablen lokal, denn sie sind ja nur im rumpf der prozedur / funktion, und nicht "überall", also nicht methodenübergreifend, bekannt, richtig?

Ja!

Also ich würde mal sagen, bleib zu Hause und schreib dem Lehrer, dass Du sowieso schon alles kannst. Er soll Dir Deine eins so geben. :wink: :wink:

ub60


guido12345 - Mo 01.11.10 23:28

ein großes daaaaaaaaaaaaaaaaaankeschön ihr seid meine helden : D


Martok - Mo 01.11.10 23:57

Hallo,

Ich möchte aber nochmal an das erinnern, was user profile iconelundril weiter oben schon sagte:

bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien [http://www.entwickler-ecke.de/richtlinien.html]:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

Viele Grüße,
Martok