Fischer-Bayern.de
Letztes Update: 12.01.2005 | 0:56:21 Uhr
Dialogboxen 
Peter Fischer

Einfache Dialoge lassen sich in AppleScript mit dem Befehl "display dialog" generieren. Dieser Befehl ist Bestandteil der Standard Additions.

Der einfachste Dialog beinhaltet den Text der Meldung, einen OK-Button und einen Cancel-Button.

display dialog "Ich lerne AppleScript!"

Dialog: Ich lerne AppleScript

Bei einem solchen Standard-Dialog, kann der OK-Button mit der Enter- oder Return-Taste bestätigt werden. Der Cancel-Button reagiert auf die Esc-Taste oder auf die Tastenkombination Befehlstaste - Punkt.

Die Syntax sieht für "display dialog" sieht folgendermaßen aus:

display dialog -- beliebiger Text
default answer -- Vorgabe für das Texteingabefeld
buttons -- Liste mit bis zu 3 Buttons
default button -- Name oder Nummer des Buttons, der mit Return- oder Entertaste bestätigt werden kann.
with icon -- Name oder Resource-ID eines Icons oder eines dieser 3 System-Icons stop/caution/note
giving up after -- Anzahl Sekunden, nach denen der Dialog automatisch geschlossen wird.

Dialog mit eigenen Buttons

Der Quelltext zu diesem Dialog sieht so aus:

display dialog "Ich lerne AppleScript!" buttons ¬
	{" OK ", " mehr Info ", " Abbruch "} default button 2 ¬
	with icon stop

Bei diesem Dialog kann nur der Default-Button über die Tastatur bestätigt werden.

Jetzt noch kurz ein Beispiel mit editierbarem Textfeld:

display dialog "Was machst Du?" default answer ¬
	"Ich lerne AppleScript!" buttons ¬
	{" OK ", " mehr Info ", " Abbruch "} default button 1 ¬
	with icon note
Dialog mit Texteingabe

Nummerierung der Buttons
Beim Standard-Dialog hat der OK-Button ID 1, der Cancel-Button ID 2.
Bei einem Dialog mit selbst definierten Buttons richtet sich die Reihenfolge nach der Reihenfolge in der Buttonliste.

Ergebnisse auswerten
Die Anweisung "display dialog" liefert immer ein Ergebnis.
button returned -- der angeklickte Button
text returned -- Text des Eingabefeldes
Beim Standard-Dialog ist es kein Problem, den Dialog auszuwerten.

Geben Sie bitte folgendes im Skripteditor ein:

display dialog "Soll das Skript ausgeführt werden?"
beep

Wenn die OK-Taste gedrückt wird, ertönt der Warnton. Im Eventprotokoll sehen Sie folgendes: --> {button returned:"OK"}
Drückt man die "Abbruch-Taste" wird das Skript erwartungsgemäß abgebrochen und der Warnton unterbleibt. Im Gegensatz zum OK-Button wird aber kein "button returned" ausgegeben, sondern eine interne Fehler-Meldung produziert. Das Eventprotokoll zeigt: --> User canceled

Es ist wichtig, daß dieser Fehler produziert wird, sonst würde das Skript weiterlaufen.

Und schon sind wir beim Problem mit selbst definierten Buttons.

Testskript:
display dialog "Soll das Skript ausgeführt werden?" buttons ¬
	{"OK", "Ich weiß nicht", "Nein"}
beep

AppleScript kennt jetzt die Bedeutung der Buttons nicht. Egal, welchen Button Sie anklicken, der Warnton wird erklingen.

Im Eventprotokoll wird in jedem Fall der Wert "button returned" ausgegeben. Diesen Wert müssen wir jetzt abfragen und somit den weiteren Skriptverlauf bestimmen.

Wir ändern dazu unser Testskript:

display dialog "Soll das Skript ausgeführt werden?" buttons ¬
   {"OK", "Ich weiß nicht", "Nein"} giving up after 5
set DlogResult to result

if button returned of result = "OK" then
   beep 1
else if button returned of result = "Ich weiß nicht" then
   beep 2
else if gave up of DlogResult is true then
   beep 5
else
   beep 3
end if

Das Skript führt nun, je nach dem welcher Button gedrückt wurde, eine andere Anweisung aus. Auch der Fall, daß der Dialog automatisch beendet wurde, ist berücksichtigt worden.

Dies waren die Möglichkeiten von AppleScript zur Erstellung von Dialogen. Sie wollen mehr? OK! Holen Sie sich die Scripting Addition "Dialog Director" auf meiner Download-Seite. "Dialog Director" stammt von Christopher Hyde. Und damit ist jedes erdenkliche User-Interface auch in AppleScript möglich.




 

 

Workshop



snow@fischer-bayern.de

Ebene 1