[GastForen Programmierung/Entwicklung AppleScript QXP9: y1 in real umwandeln

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

QXP9: y1 in real umwandeln

Goar
Beiträge gesamt: 395

28. Okt 2013, 16:05
Beitrag # 1 von 4
Bewertung:
(1613 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Skripter,

das folgende Bruchstück läuft als normales Skript mit einem offenen Dokument (QXP 9.5.2) problemlos:
Code
set newPageWidth to 155 
set refPageWidth to 196
set refBoxWidth to 190
set refBoxHeight to 111


tell application "QuarkXPress"
tell document 1 -- neue Seitenbreite einstellen
set page width to newPageWidth -- neue Seitenbreite einstellen
set widthDiff to refPageWidth - newPageWidth -- Differenz zwischen ist und soll
-- neue Breite und Höhe für die gelben Hinterleger ermitteln
set newBoxWidth to refBoxWidth - widthDiff
set newBoxHeight to refBoxHeight / refBoxWidth * newBoxWidth
end tell

tell master document 1 -- Hinterleger umgrößern
repeat with i from 1 to 2
tell picture box ("∆:Satzspiegel_" & i)
set locked to false -- zunächst entsperren
set {y1, x1, y2, x2} to bounds as list
set y1 to y1 as real
set x1 to x1 as real
set y2 to y2 as real
set x2 to x2 as real
set y2b to y1 + newBoxHeight
set x2b to x1 + newBoxWidth
set bounds to {y1, x1, y2b, x2b}
set locked to true -- wieder sperren

end tell
end repeat
end tell
end tell

Eingebaut in ein Droplet (es werden zwei Textdateien auf das Droplet gezogen, aus denen vor dem QXP-Wickel der Wert newPageWidth ermittelt wird) kommt aber die Fehlermeldung:
«data FXVM5D2E1F00» kann nicht in Typ real umgewandelt werden.

Per beep-Zeile und einen testweise eingebauten Dialog (y1 wurde als "11 mm" angezeigt) stellte ich fest, dass die Zeile »set y1 to y1 as real« die Fehlermeldung hervorruft.

Weiß jemand, wo da der Haken liegt?
X

QXP9: y1 in real umwandeln

Hans Haesler
  
Beiträge gesamt: 5826

28. Okt 2013, 17:32
Beitrag # 2 von 4
Beitrag ID: #519031
Bewertung:
(1593 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Goar,

mit folgendem Mini-Droplet habe ich das Problem nachvollziehen können.
Das gedroppte XPress-Projekt besteht aus einer Seite mit einer Bildbox.

Code
on open droppedObjects 
tell application "QuarkXPress"
open (item 1 of droppedObjects) as alias
tell document 1
tell picture box 1
set {y1, x1, y2, x2} to bounds as list
set y1 to y1 as real
display dialog "" & y1
end tell
end tell
end tell
end open

Die Lösung: Mit coerce die Umwandlung "nachdrücklicher" machen.
Aufgepasst: Statt as muss to verwendet werden.

Code
set y1 to coerce y1 to real 

Gruss, Hans


als Antwort auf: [#519028]

QXP9: y1 in real umwandeln

Goar
Beiträge gesamt: 395

28. Okt 2013, 17:57
Beitrag # 3 von 4
Beitrag ID: #519033
Bewertung:
(1581 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

mit coerce stand ich schon immer auf Kriegsfuß, da wäre ich auch dieses Mal nicht drauf gekommen.
Jetzt klappt alles wunderbar.

Vielen Dank


als Antwort auf: [#519031]

QXP9: y1 in real umwandeln

Hans Haesler
  
Beiträge gesamt: 5826

28. Okt 2013, 19:51
Beitrag # 4 von 4
Beitrag ID: #519040
Bewertung:
(1547 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Goar,

bitte sehr.

Das coerce musste schon vor mehr als zehn(!) Jahren bei normalen Umwandlungen zu Hilfe gerufen werden:
http://www.hilfdirselbst.ch/..._P418117.html#418117

Es ist zu befürchten, dass Quark dies nie in den Griff bekommen wird.

Gruss, Hans


als Antwort auf: [#519033]
X