jacdelad hat geschrieben:... Ich seh grad...geht nicht. Doof.
Warum willst Du das überhaupt tun?
Schreibe Prozeduren grundsätzlich so, dass diese universell eingesetzt werden können, ohne von anderen Variablen außerhalb abhängig zu sein. Es gibt nur die Prozedur-Argumente als "Eingabe" in die Prozedur und den Rückgabewert ("Ausgabe" der Prozedur). Es ist aber auch möglich eine Adresse an die Prozedur zu übergeben, wo diese das Ergebnis hinschreiben soll. Datenaustausch mit einer Prozedur ist also auf verschiedene Arten möglich.
Beachte auch:
Variablen, die mit Protected innerhalb einer Prozedur definiert wurden, sind nach Beendigung der Prozedur wieder ungültig! Von keiner Seite kann man von außerhalb auf Protected-Variablen zugreifen.
Wenn ich doch globale Anwendungsvariablen für spezifische Anwendungsroutinen brauche, dann lege ich mir im globalen Scope eine strukturierte Variable an. Beispiel:
Code: Alles auswählen
Structure tGlobal
Init.i
State.i
Name.s
...
EndStructure
Global g.tGlobal
Procedure ProcA()
If Not g\Init
; Init noch nich durchgeführt
EndIf
...
EndProcedure
Wenn ich überhaupt
Global verwende, dann EIN EINZIGES mal für solch eine strukturierte globale Variable, alles andere wäre mir zu unübersichtlich. So weiß ich immer, dass "g\VarName" eine globale Variable ist.
Mit der Auto-Vervollständigen Funktion kann ich nach eingabe von "g\" sofort aus allen verfügbaren globalen Variablen auswählen. So verliere ich nicht den Überblick über globalen Variablen und kann in einer Prozedur leicht zwischen globalen und prozeduralen Varialben unterscheiden!