Fischer-Bayern.de
Letztes Update: 12.01.2005 | 1:10:40 Uhr
Variablen (Teil 2) 
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.




 

 

Workshop



snow@fischer-bayern.de

Ebene 1