Hallo Armin,
ohne die Version 5 zur Hand zu haben, ist es schwierig, ein Script zu schreiben, welches mit 4.11 und 5.01 ausführbar
ist. Auch wenn man einige Änderungen kennt und berücksichtigt. Deshalb hier mein Angebot: ich bin bereit, Deine
Scripts zu testen (ich habe das Upgrade auf 5.0 gekauft und installiert).
Es ist noch zu früh, um genau zu sagen wie das bei der Version 6 aussehen wird. Deshalb nur meine Prognose: Scripts,
welche mit 5.0 laufen, werden kaum Änderungen benötigen.
Unterschiede zwischen 4.11 und 5.01 gibt es einige. Es gibt aber Scripts, welche ohne Änderung in beiden Versionen
laufen. Der Beweis: letztes Jahr passte ich 23 meiner Cool-Scripts an die Version 5.0 an. Sie wurden auf der Begleit-CD
zu Hügli's Buch "QuarkXPress 5" veröffentlicht. Im Herbst bereitete ich diese Scripts für meinen Apple-Script-Kurs vor.
Statt die alte 4.11-Versionen an meinen damaligen Wissenstand anzupassen, machte ich ein Downgrade der 5er-Scripts
auf 4.11. Dabei musste kaum etwas geändert werden.
Gut: der Test, welcher feststellt ob der Anwender sich im Dokument befindet oder eine Musterseite angezeigt hat, ist
leicht anders. Und im allgemeinen gilt: für QXP 5.01 muss präziser gescriptet werden. Mit anderen Worten: was QXP 4.11
"verzieh", wird von 5.01 mit einer Fehlermeldung geahndet.
Und: in der Version 5 startet man die Scripts am besten ab Script-Menü. Wenn aber der Anwender den Abbruch-Button
betägtigt, dann kommt die lästige Meldung, dass der Anwender die Ausführung abgebrochen hat. Damit diese Meldung
unterbleibt, muss das ganze Script in einen try-wrapper gepackt werden:
---
try
-- hier das ganze Script
on error errMsg number errNum
if errNum is not -128 then
tell application "QuarkXPress 5.01"
display dialog errMsg buttons "OK" default button 1 with icon 0
end tell
end if
return
end try
---
Die Meldung wird nur gezeigt, wenn die Fehler-Nummer nicht -128 ist (= user cancelled).
Auch dies ist anders: mit QXP 4.11 kann man mehrere Boxen mit dem gleichen Namen versehen (z.B. "xxx") und mit dem
Befehl 'tell picture box "xxx" ...' alle aufs Mal adressieren. Mit QXP 5.01 reagiert nur die erste Box.
Und dies: das Umwandeln von Konstanten in Text ergibt nicht mehr die handlichen Vier-Buchstaben-Strings...
... sondern die ganze Konstante als String...
Noch etwas Geschichte... Die Versionen 4.0 (März 1998) bis 4.03 waren fürs Scripten untauglich. Erst mit der Version 4.04, welche im Oktober 1998
erschien, waren die Neuerungen (z.B. Zeichenstilvorlagen) ansprechbar. Leider krempelte Quark das Script-Wörterbuch
gründlich um. Sämtliche 3.32-Scripts mussten angepasst werden. Schwerwiegender war aber, dass das Generieren und
Editieren von Absatz-Stilvorlagen nicht mehr möglich war.
Mit der Version 4.1 (anfangs 2000) wurde zur Syntax von 3.32 zurückgekehrt. Aber erst die Version 4.11 (Mai 2000) war
brauchbar. Doch die Stilvorlagen waren immer noch nicht definier- und editierbar.
Übrigens: die 'millimeter units' tauchten mit der Version 4.1 auf. Mit QXP 3.32 war noch die Kurzform 'millimeters' im
Gebrauch. So schrieb man: 'top of bounds as millimeters as real', um die Position der oberen Kante einer Box als Bruchzahl
zu erhalten. Ab 4.1 wurde daraus 'top of bounds as millimeters units as real'. Kleiner Trost: beim Öffnen eines 4.04-Scripts
wurde diese Änderung automatisch vorgenommen. Allerdings auch bei den Dokument-Masseinheiten. Nur: 'set horizontal
measure to millimeter units' setzte eine Fehlermeldung ab, weil hier nur 'millimeters' erwartet wird...
Hans Haesler, hsa@ringier.ch