Hallo Uwe,
bitteschön. Ja, die Farbänderungen können auch auf den Randstil angewendet werden. Und auch auf Linien-
boxen. Aber damit wird es schon recht kompliziert. Zwei Fragen: Sind es Linien des einfachen Typs (also
ohne Abstandsfarbe)? Müssen auch Absatzlinien miteinbezogen werden?
* * * * *
Währenddem ich auf die Antworten warte, hier schon mal eine Verbesserung:
Damit die Liste mit Farben, welche wir nicht zuweisen wollen, nicht unnötigerweise verlängert wird,
kann beim Aufstellen der Liste die Einschränkung 'whose separation is false' angefügt werden.
Aber dann sollte dieser Befehl in einen try-Block gesetzt werden, um eine Fehlermeldung abzufangen,
wenn im Dokument keine Schmuckfarbe existiert. Doch dann wäre die Variable 'colorList' nicht definiert.
Um diesen Fall abzudecken, kann man sie vorgängig als leer initialisieren ... 'set colorList to {}' und
nach dem Austellen der Liste prüfen ... 'if colorList is {} then'.
Eine andere Möglichkeit: Die Aktion in den 'on error'-Teil verlegen:
---
try
set colorList to name of every color spec whose separation is false
on error
set colorList to {"Magenta"}
end try
set newColor to (choose from list colorList with prompt ¬
"Die Farbe für die Texte wählen:" without multiple selections allowed and empty selection allowed) as string
if newColor is "false" then error number -128
---
Anstelle des Zuteilens von "Magenta" kann auch ein Dialog eingefügt werden, welcher dem Anwender mehr
oder weniger höflich mitteilt, dass keine Schmuckfarbe vorhanden ist. Nicht vergessen: Anschliessend die
Zeile 'error number -128' zum Abbruch der Ausführung einfügen.
In der letzten Zeile dieses Snippets sieht man, dass 'false' nicht mehr als Boolean sondern als String
eingesetzt ist. Wenn der Anwender im 'choose from list'-Dialog den Button "Abbruch" betätigt, wird die
Ausführung nicht abgebrochen. Aber das Resultat ist "false", im String-Format, weil ein gewählter
Farbname als Liste zurückgegeben wird (z.B. {"01_deutsch"}) mit dem Zusatz 'as string' verwandelt wird.
Diese beiden Elemente (Resultat und Testausdruck) hatte ich im obigen Script nicht in Einklang gebracht.
Hans Haesler <hsa@ringier.ch>
als Antwort auf: [#419208]