Ole Destionationpath rausfinden?

DrMueller

Erfahrenes Mitglied
Hi Leute,
mal wieder eine Frage an die Profis, aber zuerst vielleicht das Problem:
Wir benutzen das Tool SharpGrid um Dateien aufzulisten.
Der Benutzer kann diese von dieser Auflistung irgendwo hinziehen und die entsprechenden Dateien werden an diesem Ort dann gespeichert.
Um dies zu bewerkstelligen arbeiten wir mit zwei Events:

Code:
Private Sub myFileGrid_OLEStartDrag(ByVal data As DataObject, AllowedEffects As Long)
resp.
Code:
Private Sub myFileGrid_OLESetData(ByVal data As DataObject, DataFormat As Integer)

Der Ablauf ist relativ simpel:
Bei SetData suchen wir die Dateien auf dem Server und erstellen eine lokale Kopie. Der Pfad zu dieser Kopie wird dann entsprechend in das DataObject eingefügt und mitgegeben.


Nun das Problem: Dieses "Dateien vom Server ziehen" kann etwas dauern, wenn also der Benutzer eine grosse Datei rauszieht und dann nicht genau an dieser Stelle wartet, wird der Destionationpath wohl während des Abhol-Vorgangs gelöscht resp. neu gesetzt.
Am einfachsten wäre daher, direkt am Anfang den DestPath zu speichern und dieser dann dem OleObjekt mitzugeben. Aber mit SharpGrid habe ich nur 4 OLE-Events zur Verfügung:

OLESetData
OLEStartDrag
OLEDragDrop
OLEDragOver

wobei die letzten beiden wohl nichts mit dem Problem zu tun haben.


Daher meine Frage: Gibt es eine Möglichkeit den Destinationpath zu ermitteln resp. diesen den Ole-Objekten mitzugeben?




Wie immer danke im Voraus und einen guten Start in die Woche.
 
Hallo DrMueller,

ich kenne das Tool nicht, von daher kann ich natürlich keine getestete Lösung anbieten.

Jedoch würde ich mal versuchen, ob die DragOver oder DragDrop Events vor dem eigentlichen Kopiervorgang ausgelöst werden. Jedoch hast Du da auch nicht gesagt, welche Parameter diese Events mitgeben.

Grüsse
ronaldh
 
Hi Ronald,
die anderen Events sind insofern nicht relevant, dass sie weder beim Anklicken noch beim Dragen oder sonst wo aktiviert werden. Daher nehme ich an, dass diese unwichtig sind. Wollte sie nur der Komplettheit halber mitnennen.

Es sind leider meine ersten Erfahrungen mit OLE-Objekten, aber verhalten sich diese nicht immer gleich, egal welches Control diese jetzt aufruft? Dann wäre es ja mehr oder weniger egal, ob ich jetzt ein Grid oder ein anderes Control benutze.

Edith sagt: Was mich etwas irritiert: Wir übergeben beim DatObject den temporären Pfad, also wo die Datei physikalisch abgelegt ist. Wenn ich die Datei aber auf den Destkop ziehe, wird diese ja vom Temp-Ordner dorthin gezogen, irgendwo muss also dieser Pfad trotzdem sein. Oder wird dieses zweite Kopieren nur Windows-itern gemacht und kann gar nicht von uns zugegriffen werden?
 
Zuletzt bearbeitet:
Zurück