[GastForen Programmierung/Entwicklung AppleScript QXP 7.x: Textketten sperren

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

QXP 7.x: Textketten sperren

Hans Haesler
  
Beiträge gesamt: 5822

28. Apr 2008, 20:39
Beitrag # 1 von 2
Bewertung:
(535 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Scripter,

mit QXP 7.x kann nicht nur die Position einer Textbox, sondern auch die Textkette gesperrt werden (siehe auch das Thema "QXP: Gesamter Text auf Schriftbreite 100%"
http://www.page-online.de/forum/viewthread/3519/).

Ausprobieren: Eine Textbox erzeugen, etwas Text tippen und dann im Menü "Objekt/Sperren" den Unterartikel "Textkette" wählen. Vor diesem Artikel wird ein Häkchen gesetzt.

Wenn man nun mit dem Inhaltswerkzeug über die Box fährt, dann wird der Mauszeiger zum Vorhängeschloss. Der Text kann zwar noch ausgewählt und kopiert werden. Aber weder Änderungen des Inhalts noch der Formatierung sind möglich.

Das Ergebnis des folgenden Scripts bestätigt dies:
Code
tell document 1 of application "QuarkXPress 7.31" 
  tell current box
    tell story 1
      {format lock, content lock}
    end tell
  end tell
end tell


Im Fenster steht:
---
{true, true}
---
Sowohl Inhalt als auch Formatierung sind gesperrt.

Und nur per Script ist es möglich, nur die Formatierung zu entsperren:
Code
tell document 1 of application "QuarkXPress 7.31" 
  tell current box
    tell story 1
      set format lock to false
    end tell
  end tell
end tell

Jetzt kann dem Text eine andere Schrift zugewiesen werden. Auch die Grösse, die Farbe, der Zeilenabstand kann verändert werden. Alles, was unter den Begriff "Formatierung" fällt.

Das Häkchen vor dem Menüartikel "Textkette" ist durch einen waagrechten Bindestrich ersetzt worden.

Die beiden Eigenschaften können nicht beliebig separat gesetzt werden. Wenn der Inhalt nicht gesperrt ist, dann wird der Versuch, die Formatierung zu sperren, eine Fehlermeldung verursachen.

Weil man in den meisten Fällen nicht weiss, in welchem Zustand eine Textkette ist, müssen zuerst die beiden Optionen abgefragt werden:
Code
tell document 1 of application "QuarkXPress 7.31" 
  tell current box
    tell story 1
      {content lock, format lock}
    end tell
  end tell
end tell

Das Ergebnis wird meistens {false, false} sein. Oder aber {true, true}. Auch {true, false} kann vorkommen. Aber {false, true} ist unmöglich.

Deshalb lautet der Code, um den Inhalt einer Textkette in jedem Fall zu sperren aber die Formatierung zuzulassen:
---
tell document 1 of application "QuarkXPress 7.31"
   tell current box
      tell story 1
         set {contLock, formLock} to {content lock, format lock}
         if contLock and formLock then
            set format lock to false
         else if contLock and not formLock then
            -- nichts machen
         else
            set {content lock, format lock} to {true, false}
         end if
      end tell
   end tell
end tell
---
Während beim Sperren immer der Inhalt zuerst gesetzt werden muss, ist es beim Entsperren umgekehrt:
---
tell document 1 of application "QuarkXPress 7.31"
   tell current box
      tell story 1
         try
            set {format lock, content lock} to {false, false}
         end try
      end tell
   end tell
end tell
---
Gruss, Hans
X

QXP 7.x: Textketten sperren

Hans Haesler
  
Beiträge gesamt: 5822

5. Mai 2008, 11:05
Beitrag # 2 von 2
Beitrag ID: #422427
Bewertung:
(534 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Leute,

Korrektur: Die Sperrung der Formatierung einer Textkette kann auch manuell gelöst werden. Ein Script braucht es dazu nicht unbedingt:

Die Box mit dem Inhaltswerkzeug auswählen, den Dialog "Stil / Zeichen..." (oder "Stil / Formate...") aufrufen und das Vorhängeschloss-Symbol in der Ecke unten links wegklicken.

Gruss, Hans


als Antwort auf: [#422426]