[GastForen Programmierung/Entwicklung AppleScript Damit ich mich nicht überhebe...

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

Damit ich mich nicht überhebe...

Anonym
Beiträge gesamt: 22827

5. Mär 2004, 11:31
Beitrag # 1 von 6
Bewertung:
(1056 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Skripter :D !
Damit das Leben ja nicht zu leicht wird, habe ich jetzt XPress 6...  :?

Mensch, da funktioniert mit AS ja fast nichts mehr mit meinen Skripten wie zuvor. :(

Gibt es irgendwo ein Aufstellung mit vergleichbaren Befehlen? :shock:
Oder kann mir einer mal auf die schnelle erklären, wo jetzt die Unterschiede liegen...  :)

Schönen Gruss

Andreas :wink:
X

Damit ich mich nicht überhebe...

Hans Haesler
  
Beiträge gesamt: 5826

7. Mär 2004, 20:51
Beitrag # 2 von 6
Beitrag ID: #418657
Bewertung:
(1055 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Andreas,

leider habe ich (noch) keine Liste, welche die Unterschiede aufzeigt.

Schon für die Version 5 musste ich die meisten meiner Scripts anpassen.
Die wichtigste Änderung war, dass die handlichen Vier-Zeichen-Strings
nicht mehr vorhanden sind. Alle mussten durch die längere Konstanten-
Version ersetzt werden.

Ein Beispiel. Statt "TXTx" muss nun 'text box type' gebraucht werden.

Ein zweiter grosser Unterschied: mit QXP 4 kann man mehreren Boxen den
gleichen Namen geben. Und mit einem einzigen Befehl, welcher scheinbar
an eine einzelne Box gerichtet ist, alle ansprechen. Seit QXP 5 wird
nur noch die vorderste Box adressiert.

Aber ich nehme an, dass Deine Scripts andere Befehle enthalten, welche
angepasst werden müssen. Kannst Du ein Beispiel veröffentlichen und
schildern, was nicht mehr geht?

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#418656]

Damit ich mich nicht überhebe...

Anonym
Beiträge gesamt: 22827

12. Mär 2004, 13:35
Beitrag # 3 von 6
Beitrag ID: #418658
Bewertung:
(1055 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

<war ein paar Tage mit etwas anderem beschäftigt, deshalb erst jetzt eine Antwort>,

Nichts geht mehr!

Weiß gar nicht, wo ich anfangen soll:

picture box 1 geht nicht mehr
delete geht nicht mehr

Rahmen benennen geht nicht mehr.
etc. pp.
Sämtliche Definitionen sind ja anders!

So ein Schmarrn...
Wo soll man da denn anfangen?
Kann ich nicht irgendwo mal nachsehen, wie's heißen könnte?

Bin ehrlich verzweifelt!

Hättest du irgendein Beispielscript, das man mal sich anschauen könnte, um einen Einblick in die Änderungen zu bekommen?


Gruss

Andreas


als Antwort auf: [#418656]

Damit ich mich nicht überhebe...

Hans Haesler
  
Beiträge gesamt: 5826

12. Mär 2004, 13:54
Beitrag # 4 von 6
Beitrag ID: #418659
Bewertung:
(1055 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Andreas,

nur mit der Ruhe! Das bringen wir schon hin. Doch ein Beispielscript, welches transparent die Änderungen zeigt, habe ich nicht.

Deshalb hier mein Angebot: Sende mir ein paar Scripts (oder Snippets daraus), welche nicht mehr funktionieren. Wenn möglich mit kurzer Beschreibung. Und ich zeige Dir, wo etwas geändert werden muss.

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#418656]

Damit ich mich nicht überhebe...

Anonym
Beiträge gesamt: 22827

12. Mär 2004, 14:27
Beitrag # 5 von 6
Beitrag ID: #418660
Bewertung:
(1055 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

vielen Dank.
Hier ein ungehobeltes script in XPress 4, dass dort zumindest läuft.
Best. Daten werden aus FM übernommen und dann in einem selektierten Rahmen ein Bild gesetzt.





global DerPfad
global Rahmenname
tell application "FileMaker Pro"
 tell database "Bilder.FP5"
  set DerPfad to cell "Pfad" of current record
set Rahmenname to cell "Bestnr." of current record
 end tell
end tell
tell application "QuarkXPress Passport&#153;"
 tell document 1
  activate
 
  if exists current box then
if class of current box is text box then
global A
global B
global C
global D
global y

tell application "QuarkXPress Passport&#153;"
 tell document 1
  activate
  set y to current page
  set x to bounds of current box as list
  set A to item 1 of x
  set B to item 2 of x
  set C to item 3 of x
  set D to item 4 of x
 
  delete selection
 
 end tell
end tell
tell application "QuarkXPress Passport&#153;"
 tell document 1
  activate
  tell last page
   make picture box with properties {bounds:{A, B, C, D}} at beginning
 
 
set name of picture box 1 to Rahmenname
   select picture box Rahmenname
   set tool mode to drag mode
   
  end tell
 end tell
end tell
end if
   if class of current box is picture box then
    tell current box
     set image 1 to alias DerPfad
     set bounds of image 1 to proportional fit
     
    end tell
   else
    display dialog "No picture frame was chosen! Il n'existe pas un cadre choisi! Kein Bildrahmen gewählt!"

   end if
  else
   display dialog "No picture frame was chosen! Il n'existe pas un cadre choisi! Kein Bildrahmen gewählt!"

  end if
 end tell
end tell
---

Hoffe du wirst schlau daraus!


Gruss

Andreas


als Antwort auf: [#418656]

Damit ich mich nicht überhebe...

Hans Haesler
  
Beiträge gesamt: 5826

12. Mär 2004, 16:15
Beitrag # 6 von 6
Beitrag ID: #418661
Bewertung:
(1055 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Andreas,

ich kann die Syntax Deines Scripts erst prüfen, wenn ich 'last page' in 'page -1' verwandle. Auch mit XPress 4.11 unter Mac OS 9.2.1.

Mit QuarkXPress 6.1 unter Mac OS X 10.3.2 muss nur wenig geändert werden, damit das Script läuft:
1. 'page -1' (anstelle von 'last page'
2. 'delete current box' (anstelle von 'delete selection')
3. die Zeile 'set tool mode to drag mode' aus dem 'tell page -1'-Blocks hinaus verschieben.

Das ist alles. Ich habe aber den Pfad und den Namen für die Box nicht von FileMaker bezogen, sondern einfach den beiden Variablen zugewiesen.

Einige Bemerkungen (ich befürchte zwar, dass einige widerlegt werden, wenn Teile des Scripts in Betracht gezogen werden, welche ich nicht kenne).
A. Die Variablen müssen nicht als 'global' deklariert werden.
B. Der Wert von 'set y to current page' wird nirgends gebraucht.
C. Die Liste der 'bounds' kann man direkter ausziehen.
D. Beide Fehlermeldungen sprechen von Bildboxen, obwohl bei einer ausgewählten Textbox auch eine Aktion erfolgt.
E. Der Befehl 'activate' muss nur einmal erfolgen. Die weiteren sind überflüssig.
F. Der äussere XPress-Block enthält zwei weitere XPress-Blocks.
G. Statt 'class' ist es gebräuchlicher 'box type' zu benutzen.
H. Der Test 'if class of current box' sollte nicht mit 'end if' abgeschlossen und dann gleich nochmals gestartet werden. Es ist effizienter, die beiden Tests mit 'else if' in einer Schleife zusammenzufassen. Okay, bei nur zweien ist der Unterschied nicht spürbar. Aber bei einer grossen Anzahl wird die Schleife verlassen, sobald eine Übereinstimmung da ist, während bei isolierten 'if / end if'-Konstruktionen jede drangenommen wird.

Ich habe das Ganze etwas gestrafft und so sieht es aus:
---
set DerPfad to ((path to "cusr") as string) & "Documents:dtpro_Forum:Andreas_Probleme:fleur.tif"
set Rahmenname to "1234"

tell document 1 of application "QuarkXPress 4.11"
  activate
  try
    set boxType to box type of current box
  on error
    display dialog "No box is selected.
Il n'y a pas de bloc s&eacute;lectionn&eacute;.
Kein Rahmen ist ausgewählt." buttons "OK" default button 1 with icon 2
    error number -128
  end try
  if boxType is text box type then
    set {y1, x1, y2, x2} to bounds of current box as list
   
    delete current box
   
    tell page -1
      make picture box at beginning with properties {bounds:{y1, x1, y2, x2}}
      set name of picture box 1 to Rahmenname
      select picture box Rahmenname
    end tell
    set tool mode to drag mode
  else if boxType is picture box type then
    tell current box
      set image 1 to alias DerPfad
      set bounds of image 1 to proportional fit
    end tell
  end if
end tell
---
Bitte führe dieses Script erst Mal ohne FileMaker-Präsenz aus. Du musst nur den Pfad anpassen. Der '((path to "cusr") as string)' ist der Pfad zu Deinem Benutzerordner. Nach dem "&"-Zeichen folgen dann die Namen weiterer Ordner und zum Schluss jener der Bilddatei.

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#418656]
X