AppleScript funktioniert unter RT 6.5 nicht

Guten Tag allerseits,

um auf Tastendruck die Lage eines Rechenblatts wechseln zu können,
habe unter RT 6.0.2 folgendes Skript geschrieben,
in ein RT-Dokument eingebunden und ein Tastenkürzel zugewiesen:

tell application "RagTime 6"
activate
try
set theLage to (get active plane of selection)
set active plane of selection to (theLage + 1)
on error
set active plane of selection to 1
end try
end tell

Dieses Skript versieht unter RT 6.0.2 mit MacOS 10.5.6 klaglos seinen
Dienst.

Unter RT 6.5 (Build 1811) scheint der Stolperstein in der Zeile

set theLage to (get active plane of selection)

zu liegen - möglicherweise genauer bei "active plane".

Kann jemand diesen Fehler nachvollziehen?

Gruß
Lutz

Re: AppleScript funktioniert unter RT 6.5 nicht

#8393 On 11 Februar, 2009 17:39 Norbert Lindenthal said,

Das muß heißen:
> tell application "RagTime 6.5"

… dann läuft es bei mir.

Viel Erfolg,
Norbert Lindenthal

Am 11.02.2009 um 16.59:15 schrieb Lutz-Dieter Bornemann:

> tell application "RagTime 6"
> activate
> try
> set theLage to (get active plane of selection)
> set active plane of selection to (theLage + 1)
> on error
> set active plane of selection to 1
> end try
> end tell

Re: AppleScript funktioniert unter RT 6.5 nicht

#8394 On 11 Februar, 2009 18:14 Lutz-Dieter Bornemann said,

Am 11.02.2009 um 17:42 schrieb Norbert Lindenthal:

> Das muß heißen:
>> tell application "RagTime 6.5"
>
> … dann läuft es bei mir.

Hallo Norbert,

das wundert mich, denn bei mir erfolgt die Änderung automatisch -
je nach dem, ob ich das Dokument mit RT 6.0.2 oder RT 6.5 öffne.

Der Fehler äußert sich so, dass der Wechsel von Lage 1 nach 2 nicht
möglich ist.
Von Lage 2 nach 1 funktioniert auch bei mir.

Gruß
Lutz

Re: AppleScript funktioniert unter RT 6.5 nicht

#8395 On 11 Februar, 2009 20:06 Norbert Lindenthal said,

Mein 6lagiges Rechenblatt wird wie gewünscht durchgewechselt.

Nur anfangs beim Einsetzen des Skripts unter RagTime 6.5 kam die
Meldung, es sei wegen Syntaxfehler nicht übersetzbar. Dieser Fehler
rührte von RagTime 6 statt RagTime 6.5 her.

Es läuft auch im Skripteditor einwandfrei.

Norbert Lindenthal

Re: AppleScript funktioniert unter RT 6.5 nicht

#8396 On 11 Februar, 2009 21:53 djschulz said,

Bei mir funktioniert der ganze in RagTime eingebaute Skripteditor zur Zeit nicht, weder in 6.0.2 noch in 6.5. Er kompiliert das Skript einfach nicht. Hatte aber leider noch keine Zeit herauszufinden, woran das genau liegt und habe zur Zeit keinen Zugriff auf ein Zweitsystem. Vermute ich hab in letzter Zeit zuviel AppleScript-mäßig am System getestet und rumgeschraubt und muss mal klar Schiff machen.
Von außerhalb funktioniert das Skript aber wunderbar in beiden RagTime-Versionen. Am Skript selber liegt es also sicher nicht.

Ich werde mal die diversen fremden AppleScript-Erweiterungen in den Library/StandardAdditions-Ordnern und auch evtl. vorhandene AppleScript-Komponenten in den Library/Components-Ordnern rauswerfen. (Ausser den Apple-eigenen natürlich) Vielleicht hängt es damit zusammen das ich Smile, den Script Debugger und noch einiges mehr zum Testen installiert habe/hatte. Melde mich wenn das hilft.

Detlef Schulz

Endlich ist mein Werk draussen:
AppleScript - Der automatische Mac
845 Seiten
SmartBooks-Verlag
Näheres: www.skripteditor.de

Re: AppleScript funktioniert unter RT 6.5 nicht

#8397 On 11 Februar, 2009 23:04 Lutz-Dieter Bornemann said,

Hallo Norbert, hallo Detlef,

auch vom Skripteditor aus funktioniert bei mir das Skript nur mit 6.0.2
(auch hier übrigens das automatische Umstellen von
"tell application "RagTime 6" ... auf
"tell application "RagTime 6.5" ...,
wenn statt RT 6.0.2 RT 6.5 geöffnet ist.

Der Skripteditor hat mir allerdings folgende Event-Protokolle
beim Wechsel von der 1. in die 2. Lage angezeigt
- der Wechsel von der 2. in die 1. Lage funktioniert ja in beiden RT-
Versionen -

bei RT 6.0.2:
tell application "RagTime 6"
activate
get active plane of selection
1 -- alles ok
set active plane of selection to 2 -- das Rechenblatt "wechselt" in
die 2. Lage
end tell

und bei RT 6.5:
tell application "RagTime 6.5"
activate
get active plane of selection
0 -- eben nicht ok
set active plane of selection to 1 -- das Rechenblatt bleibt in der
1. Lage stehen
end tell

Ich schließe daraus, dass bei mir - aus welchem Grund auch immer -
RT 6.5 mit der Wendung "get active plane of selection" nicht richtig
umgeht.

Mehr kann ich im Augenblick mit meinen Kenntnissen
leider nicht herausfinden.

Gruß
Lutz

AppleScript funktioniert unter RT 6.5 nicht

#8400 On 12 Februar, 2009 19:49 Lutz-Dieter Bornemann said,

Guten Tag Allerseits,

hier eine kleine Ergänzung zum Problem:

Das Versuchsskript:

tell application "RagTime 6.5"
activate
active plane of selection
end tell

ergibt vom Skripteditor aus mit RT 6.5 als Ergebnis stets "0",
während mit RT 6.0.2 stets genau die wirklich aktive Lage angezeigt
wird -
also "1", wenn Lage 1 aktiv ist, und "2" bei Lage 2 usw.

Ich habe das Skript folgendermaßen RT 6.5-tauglich gemacht:

property theLage : 1

tell application "RagTime 6.5"
activate
try
set theLage to theLage + 1
set active plane of selection to theLage
on error
set theLage to 1
set active plane of selection to theLage
end try
end tell

Es funktioniert.
Aber richtig glücklich bin ich nicht,
denn ich habe das Gefühl, noch einige andere Skripte umschreiben zu
müssen.

Vielleicht hat jemand eine Idee,
woran es liegen könnte.

Gruß
Lutz

Re: AppleScript funktioniert unter RT 6.5 nicht

#8401 On 12 Februar, 2009 21:04 Norbert Lindenthal said,

Am 12.02.2009 um 19.51:55 schrieb Lutz-Dieter Bornemann:

> tell application "RagTime 6.5"
> activate
> active plane of selection
> end tell

Moin, Lutz,
sowohl bei meinem 6lagigen Dokument, das mal mit RagTime 5 begonnen
wurde, wie auch in einem heute auf RagTime 6.5 neu erzeugten
Versuchsrechenblatt mit 3 Lagen bringt Dein Skript richtig die
jeweilige aktuelle Lagennummer. Aber muß es nicht heißen:
1)
»get« active plane of selection
oder noch besser
2)
get active plane of "dreilagiges Versuchsrechenblatt" of document 1
?

Jedenfalls wird es im Event-Protokoll wie bei 1) aufgelistet.
Bei meinem Skript zum Lagenwechsel wird der Rechenblattname genauer
angegeben:

tell application "RagTime 6.5"
activate
set active plane of table "Rechenblattname" of document 1 to 3
end tell

Dieses Skript holt nur Lage 3 nach vorne, nichts anderes.

Bin mal gespannt, wo die Lösung liegt.
Norbert Lindenthal

Re: AppleScript funktioniert unter RT 6.5 nicht

#8404 On 13 Februar, 2009 13:59 Lutz-Dieter Bornemann said,

Am 12.02.2009 um 21:06 schrieb Norbert Lindenthal:

> Am 12.02.2009 um 19.51:55 schrieb Lutz-Dieter Bornemann:
>
>> tell application "RagTime 6.5"
>> activate
>> active plane of selection
>> end tell
>
> Moin, Lutz,
> sowohl bei meinem 6lagigen Dokument, das mal mit RagTime 5 begonnen
> wurde, wie auch in einem heute auf RagTime 6.5 neu erzeugten
> Versuchsrechenblatt mit 3 Lagen bringt Dein Skript richtig die
> jeweilige aktuelle Lagennummer. Aber muß es nicht heißen:
> 1)
> »get« active plane of selection
> oder noch besser
> 2)
> get active plane of "dreilagiges Versuchsrechenblatt" of document 1
> ?
>
Hallo Norbert,

es scheint in diesem Zusammenhang egal zu sein,
ob man "get" hinzufügt oder nicht.
Sicher wird das Skript dadurch lesbarer.

> Jedenfalls wird es im Event-Protokoll wie bei 1) aufgelistet.
> Bei meinem Skript zum Lagenwechsel wird der Rechenblattname genauer
> angegeben:
>
> tell application "RagTime 6.5"
> activate
> set active plane of table "Rechenblattname" of document 1 to 3
> end tell
>
> Dieses Skript holt nur Lage 3 nach vorne, nichts anderes.

Mein Anwendungsfall ist Deinem gegenüber auf ein zweilagiges
Rechenblatt beschränkt,
das aktiv im Vordergrund ist.
Ich will nur zwischen Lage 1 und Lage 2 hin- und herwechseln,
ohne zur Maus greifen zu müssen (zugewiesenes Tastenkürzel).
Deshalb reicht mir auch das auf RT 6.5 angepasste Skript erst einmal
aus.

Bei mir scheint irgendwo in RT 6.5
(ich werde mir "Build 1812" noch herunterladen)
oder in AppleScript
oder sonst im Betriebssystem
der Wurm drin zu sein.
Doch wo nur???

Gruß
Lutz
und schon einmal vielen Dank für Deine bisherigen Bemühungen.