Autor |
Beitrag |
guido12345
Hält's aus hier
Beiträge: 5
Erhaltene Danke: 1
|
Verfasst: Mo 01.11.10 22:36
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 
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Mo 01.11.10 22:43
zum ersten teil der Frage kann ich nur folgendes sagen:
Christians Crashkurs
Delphi-Wikibook
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
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Mo 01.11.10 22:52
Luckie hat folgendes geschrieben : | 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
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
ub60
      
Beiträge: 764
Erhaltene Danke: 127
|
Verfasst: Mo 01.11.10 23:00
Im deutschen "Programmiersprachen-Raum" wird der Begriff Feld in zweifacher Bedeutung verwendet:
- Feld in der Bedeutung eines Arrays (Ich nehme an, das ist hier gemeint)
- Feldvariable in der Bedeutung von Attributen einer Klasse als Übersetzung des Begriffs field-Variable
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
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 01.11.10 23:03
elundril hat folgendes geschrieben : | 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 
Hält's aus hier
Beiträge: 5
Erhaltene Danke: 1
|
Verfasst: 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?
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 01.11.10 23:20
Richtig. Zumindest der zweite Teil, den ersten habe ich nicht ganz verstanden. 
|
|
ub60
      
Beiträge: 764
Erhaltene Danke: 127
|
Verfasst: Mo 01.11.10 23:21
guido12345 hat folgendes geschrieben : | 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.
ub60
|
|
guido12345 
Hält's aus hier
Beiträge: 5
Erhaltene Danke: 1
|
Verfasst: Mo 01.11.10 23:28
ein großes daaaaaaaaaaaaaaaaaankeschön ihr seid meine helden : D
Für diesen Beitrag haben gedankt: elundril
|
|
Martok
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Mo 01.11.10 23:57
Hallo,
Ich möchte aber nochmal an das erinnern, was elundril 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:
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  oder  klicken und den Titel ändern. Danke Dir!
Viele Grüße,
Martok
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|