Arbeiten mit dem Auswahl-Objekt

Von Jürgen Schell. | 9 April, 2008 - 10:22
Beschreibung:

Wie in dem einführenden Teil zu Programmobjekten beschrieben, kann man in RagTime und unterhalb von RagTime über Fenster das Objekt selection ansprechen. In Dokumenten kann man das Objekt selection nicht ansprechen.

Seit einiger Zeit ist allerdings die für das Programm gültige Auswahl nur im Script-Zugriff, wenn RagTime im Vordergrund ist. Lässt man ein Script in RagTime laufen, ist das immer der Fall. Nicht aber, wenn man den Apple Script Editor im Vordergrund hat und das Script von dort aus laufen lässt.

tell application "RagTime 6.5" -- Problembeispiel
     set A to selection
end tell

führt zu einer Fehlermeldung. Hingegen funktioniert folgende Variante korrekt:

tell application "RagTime 6.5"
     activate
     set A to selection
end tell

Wird explizit ein Fenster angesprochen, kann das activate fehlen:

tell application "RagTime 6.5"
     set A to selection of window 1
end tell

führt zu keinem Fehler. Folgendes Script eignet sich zum Experimentieren, wenn man sich im Script Editor anschließend das Resultat ansieht:

tell application "RagTime 6.5"
     activate
     set A to selection
     set B to selection of window 1
     set C to selection of window 2
     {A, B, C}
end tell

Nehmen wir folgende Situation an: Zwei Dokumente sind geöffnet, im hinteren ist etwas Text ausgewählt, im forderen ein Rechteck auf einer Seite. Dann wird das Resultat dieses Scripts etwa wie folgt aussehen:

{
rectangle 1 of page 1 of layout "Layout 1" of document id 2 of application "RagTime 6.5",
rectangle 1 of page 1 of layout "Layout 1" of document id 2 of application "RagTime 6.5",
text from character 1 to character 10 of contents of text flow "Text 1" of document id 1 of application "RagTime 6.5"
}

Die ersten beiden Abfragen, selection und selection of window 1, liefern dasselbe Resultat, die Auswahl im ersten Dokument. Die Variable C enthält die Auswahl im zweiten Dokument.
Wird nun im forderen Dokument das Fenster Schriftvorlagen geöffnet und “Standardschrift� in der Liste ausgewählt, liefert das Script folgendes Resultat:

{
character style sheet "Standardschrift" of document id 2 of application "RagTime 6.5",
character style sheet "Standardschrift" of document id 2 of application "RagTime 6.5",
rectangle 1 of page 1 of layout "Layout 1" of document id 2 of application "RagTime 6.5"
}

In dieser Variante gehören die beiden ersten Fenster zu Dokument 1: Das Schriftvorlagen-Fenster und das Layout-Fenster. Variable A und B enthalten wieder dasselbe. Die selection von RagTime ist immer gleich der selection des ersten Fensters von RagTime. C enthält jetzt die Auswahl in dem Layout-Fenster von Dokument 1.