[GastForen Programmierung/Entwicklung AppleScript Die erste Box einer Textkette auswählen

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

Die erste Box einer Textkette auswählen

Hans Haesler
  
Beiträge gesamt: 5826

28. Aug 2003, 13:48
Beitrag # 1 von 1
Bewertung:
(388 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Scripts, welche die Absätze einer ausgewählten Box adressieren, beginnen häufig so:
---
tell document 1 of application "QuarkXPress 4.11"
  tell current box
    tell story 1
      repeat with i from 1 to count of paragraphs
---
Wenn sich die Textkette in einer einzigen Box befindet, dann ist dies kein Problem. Wenn sie aber durch
mehrere verkettete Boxen fliesst, dann muss unbedingt die erste Box der Kette ausgewählt sein, sonst
ergibt 'count of paragraphs' den Wert 0 (= Null) und das Script führt die gewünschten Aktionen nicht aus.

Wie kann man nun die erste Box der Kette auswählen? So:
---
tell document 1 of application "QuarkXPress 4.11"
  tell current box
    set selected of text box 1 of story 1 to true
---

Aber man muss auch sicherstellen, dass das Inhaltswerkzeug ausgewählt ist. Sonst sind mehrere Boxen ausgewählt
und eine Fehlermeldung wird angezeigt. Eingangs des Scripts muss man auch testen, ob überhaupt eine Box
selektiert ist und ob es eine Textbox ist. Und so werden aus den drei oder vier Zeilen schnell viel mehr.

Damit die Sache nicht zu lang wird, verzichte ich hier auf die Befehle, welche testen, ob ein Dokument offen
ist und ob nicht eine Musterseite angezeigt ist.
---
tell document 1 of application "QuarkXPress 4.11"
  activate
  if tool mode is not drag mode then set tool mode to drag mode
  try
    set boxType to box type of current box
  on error
    display dialog "Es ist keine Box ausgewählt." buttons "OK" default button 1 with icon 0
    error number -128
  end try
  if boxType is group box type then
    display dialog "Nur eine einzige Box auswählen." buttons "OK" default button 1 with icon 0
    error number -128
  else if boxType is not text box type then
    display dialog "Bitte eine Textbox auswählen." buttons "OK" default button 1 with icon 0
    error number -128
  end if
  set tool mode to contents mode
  tell current box
    set selected of text box 1 of story 1 to true
  end tell
  set tool mode to drag mode
  tell current box
    tell story 1
      repeat with i from 1 to count of paragraphs
---
Zu Beginn wird das Objektwerkzeug ausgewählt. Dann wird der Boxentyp festgestellt. Wenn er 'group box type',
dann ist mehr als eine Box ausgewählt, wenn er nicht 'text box type' ist, dann ist keine Textbox ausgewählt.
Wenn alles in Ordnung ist, wird das Inhaltswerkzeug ausgewählt, die Auswahl der ersten Textbox aktiviert und
wieder zum Objektwerkzeug gewechselt (damit die Ausführung beschleunigt wird).

Hans Haesler, hsa@ringier.ch
X