Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Wolle-77 •--->


Anmeldedatum: 25.02.2003 Beiträge: 449 Wohnort: Geldern
|
Verfasst am: 27.02.2004 - 20:45 Titel: drop-Handler übergibt seltsame Pfade |
|
|
Hallo zusammen,
Per Drag & Drop auf ein Programm gezogene Dateien liefern bei Abfrage des Referenztyps "file names" (dieser Abfragewert wird auch von Apples Beispiel-Drag&Drop-Anwendung benutzt) immer "relative" Pfadangaben wie "/Users/martinwolter/Desktop/Bild 1.pdf". Auf solch einen string kann der Finder nicht direkt zugreifen.
Ein on open Handler im klassischen Sinne liefert offenbar direkt "richtige" Pfadangaben wie "Macintosh HD:Systemordner:Finder".
Daher kann man ja einfach eine Dateiliste abarbeiten:
on open objekte
tell application "finder"
repeat with datei in objekte...
...
Bei den relativen Angaben mit Schrägstrichen funktioniert aber der Finder-Zugriff auf solch ein Objekte nicht. Habt Ihr eine Idee, wie man im drop-Handler nun auf diese Dateien (übergebene Liste) zugreifen kann?
Ich habe schon erfolglos probiert, zusätzlich zu einem klassischen on open-Ablauf set datei to path to datei oder set datei to datei as alias zu benutzen.
Martin _________________ Martin Wolter
--
Apple rocks the planet! |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 27.02.2004 - 22:15 Titel: |
|
|
Hallo Martin,
kleines Beispielskript:
set myPath to POSIX path of (choose file)
-- "/Users/snow/Desktop/Screenshots/JPEG Images/Bild 1.jpg"
set dieDatei to myPath as POSIX file
Ergebnis:
file "X Disk:Users:snow:Desktop:Screenshots:JPEG Images:Bild 1.jpg"
Die erste Zeile stellt eine Pfadangabe mit Schrägstrichen her.
Die zweite Zeile macht daraus eine Pfadangabe, wie du sie brauchst. _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
Wolle-77 •--->


Anmeldedatum: 25.02.2003 Beiträge: 449 Wohnort: Geldern
|
Verfasst am: 27.02.2004 - 23:37 Titel: Das hilft schon mal sehr, aber... |
|
|
Hallo Snow,
vielen Dank für diesen Tip. Das hilft schon mal sehr. Die Pfadangaben lassen sich damit umwandeln. Auf der Suche nach mehr Informationen zu der POSIX-Funktion bin ich nur sehr vereinzelt fündig geworden. Im Buch AppleScript in a Nutshell steht da gar nichts zu. In einem Beispielprojekt auf apple.com stand da auch nur das wesentliche.
Aber nun tritt ein ganz anderes störendes Problem auf:
So ist mein Handler:
on drop theObject drag info dragInfo
set dataTypes to types of pasteboard of dragInfo
if "file names" is in dataTypes then
set preferred type of pasteboard of dragInfo to "file names"
set thePaths to contents of pasteboard of dragInfo
if name of theObject is "lumo" then
my lumo(thePaths)
...
end if
end drop
on awake from nib theObject -- klar, das gehört an den Anfang.
tell box "lumo" of window "haupt" to register drag types {"file names"}
end awake from nib
on lumo(objekte) -- lock & unlock Hauptobjekte
tell application "Finder"
repeat with datei in objekte
set datei to datei as POSIX file
set datei to datei as alias
try
if locked of datei is true then
...
So, durch die beiden Zeilen läuft das Script per Drag & Drop an und auch fehlerfrei zu Ende, aber unerträglich langsam. Ich habe hier mein iBook 900, und es braucht bestimmt 6 Sekunden, bis die Obkekte einzeln bearbeitet werden und dann noch einmal so lange, bis die Objekte wieder "zurückspringen".
Also irgendwas scheint sich da intern aufzulaufen. Und die beiden Zeilen müssen ja innerhalb der Schleife stehen.
Hast Du Erfahrung mit Drag&Drop? Wüßtest Du eine bessere Methode? Ich könnte höchstens die POSIX-Umwandlung schon im drop-Handler machen, aber das würde ja vom Prinzip nichts ändern.
Ich glaube, ich schiebe das Problem einfach auf AS Studio. Vielleicht eine Ungereimtheit beim Kompilieren, die irgendwann mal behoben wird. :?:
!!! Denn: Mache ich keine Umwandlung der Pfade und entferne den Try-Block, dann erscheint die Fehlermeldung SOFORT. Also Performance ist top, aber Programm halt falsch :roll: _________________ Martin Wolter
--
Apple rocks the planet! |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2002 phpBB Group Deutsche Übersetzung von phpBB.de
|
|
|