AppleScript mittels Einblendmenu aktivieren

Liebe RagTime–Freunde

Ich habe in RagTime ein Einblendmenu definiert mit den Werten "A", "B" und "C". Gibt es eine Möglichkeit allein durch die Wahl der Werte (z.B. Wert "B") eine AppleScript–Aktion auszulösen, ohne dass ich zusätzlich mit einem zweiten Knopf das Script starten muss?

Für alle Tipps dankbar
Flavio

Re: AppleScript mittels Einblendmenu aktivieren

#9700 On 5 August, 2010 18:30 FlavioCaldana said,

Vielen Dank Thomas und Jürgen

Wenn zwei Experten zum selben Schluss kommen, muss ich mir da keine weiteren Gedanken machen. Entweder das Thema durch einzelne Knöpfe lösen oder in einem Knopf die Auswahl einstellen und in einem zweiten Knopf die Aktion auslösen, je nach Anzahl der auswählbaren Elemente.
Ich danke Euch ganz herzlich für Eure Hilfe.

Gruss
Flavio

Re: AppleScript mittels Einblendmenu aktivieren

#9697 On 5 August, 2010 10:46 Thomas Kaegi said,

Hallo Flavio

Das macht wenig Sinn. Das Auslösen eines AppleScripts ist ein dynamischer Vorgang, die Auswahl mit der Einstellung eines Enblendmenüs ist aber statisch. Anders gesagt: Du müsstest den Wechsel der Einstellung des Einblendmenüs feststellen. Das lässt sich zwar per Formel machen. Aber ein AppleScript kann nicht per Formel aufgerufen werden. Ob es umgekehrt möglich ist, ein ApppleScript im Hintergrund laufen zu lassen, das - ohne die Rechenleistung des Macs voll in Anspruch zu nehmen - die Knopfauswahl beobachtet, den Wechsel feststellt, und bei Wechsel eine bestimmte Aktion auslöst, entzieht sich meiner Kenntnis.

Was du hingegen machen könntest und was (bei nur drei Einstellmöglichkeiten) durchaus realistisch ist:
Definiere 3 "gewöhnliche" Knöpfe A, B und C, die je ein AppleScript aufrufen. In diesem Script schreibst du in eine im Layout sichtbare Rechenblattzelle den anzuzeigenden Wert (quasi die aktuelle Einstellung des Einblendmenüs) und führst danach die gewünschte Aktion aus.

Gruss, Thomas
ragtime-consult.ch

Re: AppleScript mittels Einblendmenu aktivieren

#9699 On 5 August, 2010 11:50 Thomas Kaegi said,

Hallo Flavio

Ich habe jetzt mit folgendem Vorgehen die Erfüllbarkeit deines Wunsches zu testen versucht:
Ich habe in einem Dokument "Test.rtd" ein "Rechenblatt 1", in welchem in Zelle A1 per Formel der Wert des Einblendmenüs übernommen wird. Ich habe dann ein AppleScript verfasst, in welchem diese Zelle abgefragt wird. Wenn deren Wert ändert, wird er in Zelle B1 geschrieben, so dass ich sehe, dass das Skript auch etwas unternimmt. Dort könnte natürlich auch abgefragt werden, welches denn der aktuelle Wert des Einblendmenüs ist und die von dir gewünschte Aktion ausgelöst werden. Ich habe das Fenster "Aktivitätsanzeige" des entsprechenden Dienstprogramms geöffnet, um zu sehen, wie hoch die Prozessorauslastung wird. Eigenartigerweise unterscheiden sich die Werte bei immer gleicher Anordnung in mehreren Versuchen erheblich. Von Werten unter 10% bis über 90% habe ich alles gesehen. Wichtig ist, dass das Fenster des SkriptEditors offen bleibt, damit man mit Klick auf den Roten Kopf die Ausführung abbrechen kann. Bei Platzierung des Skripts innerhalb des Dokumentes war RagTime nicht mehr bedienbar und musste "abgeschossen" werden.

Hier das von mir zum Test benützte Script:
tell application "RagTime 6.5"
activate
set knopf to value of cell "A1" of table "Rechenblatt 1" of document 1
repeat
if knopf is not equal to value of cell "A1" of table "Rechenblatt 1" of document 1 then
set knopf to value of cell "A1" of table "Rechenblatt 1" of document 1
set value of cell "B1" of table "Rechenblatt 1" of document 1 to knopf
end if
end repeat
end tell

Auch wenn ich damit gezeigt habe, dass es unter Beachtung gewisser Einschränkungen machbar ist, so halte ich diesen Weg doch für gar nicht empfehlenswert. Es ist ja auch wohl kaum Sinn der Übung, dass man ein externes Skript-Fenster geöffnet haben und dort ein Skript starten muss, um dem Dokument die gewünschte Bedienungsoberfläche zu geben.

Gruss, Thomas

Re: AppleScript mittels Einblendmenu aktivieren

#9696 On 5 August, 2010 10:01 Jürgen Schell said,

Gibt es nicht. AppleScripts müssen in RagTime immer per Knopfklick oder Menü-Anweisung »getreten« werden.

Gruß,

www.j-schell.de