Peter Fischer
Geltungsbereich
Auf die, in Variablen abgelegten Werte, kann von unterschiedlichen Stellen des Skripts aus zugegriffen werden. Das gilt jedoch nicht uneingeschränkt. Soweit nichts anderes bestimmt wird, gilt eine Variable nur innerhalb des Handlers, in dem sie definiert wurde.
Es handelt sich also um eine sog. lokale Variable.
Beispiel:
set myText to "Hallo"
test()
get myText -- Keine Änderung
on test()
set myText to "Ich bin da!"
end test
Wenn Sie dieses Skript ausführen, erhalten Sie als Ergebnis den Text "Hallo".
Die Variable myText taucht zwar auch im test-Handler auf, arbeitet dort jedoch mit eigenen Werten. Genau genommen handelt es sich eigentlich gar nicht um die selbe Variable, sondern um eine neue Variable mit dem selben Namen.
Wir könnten nun den Wert der Variablen an den Handler weiterreichen und den geänderten Wert vom Handler zurück liefern lassen.
Das könnte so aussehen:
set myText to "Hallo"
set myText to test(myText) -- Wert wird weiter gereicht
get myText
on test(myText) -- Wert wird übernommen
set myText to myText & "! Ich bin da!"
end test
Ergebnis: ---> Hallo! Ich bin da!
Die Sache ist aber reichlich umständlich. Wenn man die Werte von mehreren Variablen in verschiedenen Handlern braucht, bietet AppleScript eine einfachere Methode an. Die 'globale' Variable.
Globale Variablen
Um eine Variable als global zu definieren, brauchen Sie nur das Wort 'global' gefolgt vom Variablennamen zu schreiben.
global myText
Sie können auch mehrere Variablen zu globalen Variablen machen. Listen Sie einfach alle Variablen auf.
global myText, Meine_Zahl, UndNochEineVariable
Somit sieht unser Beispiel-Skript wie folgt aus:
global myText
set myText to "Hallo"
test()
get myText
on test()
set myText to myText & "! Ich bin da!"
end test
Ergebnis: ---> Hallo! Ich bin da!
Jetzt ist das Skript doch schon wesentlich übersichtlicher.
Property-Variablen
Aller guten Dinge sind 3. Deshalb haben wir auch noch einen dritten Variablen-Typ. Bei der Property-Variable handelt es sich um eine spezielle globale Variable. Sie behält ihren Wert auch nach Beendigung des Skripts. Eine Initialisierung erfolgt nur, wenn das Skript neu kompiliert wird.
Eine Property-Variable definieren Sie so:
property VariablenName: "Anfangswert"
Im folgenden Beispiel wird die Property-Variable als Zähler eingesetzt. In ihr wird gespeichert, wie oft das Skript ausgeführt wurde.
property Zaehler : 1
if Zaehler > 3 then
display dialog "3 mal ist genug!"
else
display dialog "Sie haben das Skript " & Zaehler & " mal gestartet"
set Zaehler to Zaehler + 1
end if
So könnten Sie z.B. die Fehlversuche bei einer Passwort-Eingabe zählen. Aber Ihnen werden bestimmt genug Anwendungsmöglichkeiten einfallen.
|