Einzelnen Beitrag anzeigen

AndyOthers

Registriert seit: 24. Sep 2007
Ort: Korneuburg
4 Beiträge
 
Delphi 5 Enterprise
 
#60

Re: DragOver vom Explorer erkennen

  Alt 15. Okt 2007, 15:58
hallo

... ich hab schon befürchtet, dass ich mich ein wenig undeutlich ausgedrückt habe .

löschen der temporären dateien:
war anscheinend mein fehler, hab nicht gesehen wo diese als ftTemporary gekennzeichneten Files wieder gelöscht werden. sorry

weiter zu FillObjects:

Zitat:
Die Methode FillObjects wird in DragEnter immer ausgeführt.
hier muss ich aber widersprechen . wie man im nachfolgenden code auszug sieht, wird fillobjects nur ausgeführt, wenn man in seiner shelldropper komponente OnDragEnter verwendet. arbeitet man zB nur mit OnDrop wird hier FillObjects nicht ausgeführt!

Delphi-Quellcode:
if FAccepted then
  begin
    if Assigned(FOnDragEnter) then
    begin
      FillObjects(dataObj, dsEnter);
      PrepareRec(pt, grfKeyState);
      FOnDragEnter(FControl, FDropRec, FAccepted);
    end;
  end;
Zitat:
Das Problem ist ja, dass Thunderbird den Inhalt der Datei erst schreibt, nachdem die Drop-Nachricht abgearbeitet wurde (lässt sich schön mit einem Breakpoint am Ende von "Drop" zeigen).
RICHTIG. und genau deswegen lasse ich fillobjects AUF JEDEN FALL im DragEnter ausführen damit Thunderbird die Datei vorm Drop noch befüllen kann. und wie gesagt, jetzt funzts mit Thunderbird, OutlookExpress und Outlook 2000.

im DragEnter:
Delphi-Quellcode:
...
  if FAccepted then
  begin
     FillObjects(dataObj, dsEnter);
    if Assigned(FOnDragEnter) then
    begin
      //FillObjects(dataObj, dsEnter);
      PrepareRec(pt, grfKeyState);
      FOnDragEnter(FControl, FDropRec, FAccepted);
    end;
  end;
...
im Drop:
Delphi-Quellcode:
...
  FDropped := True;
  if FAccepted then
  begin
    if Assigned(FOnDrop) then
    begin
      if FIsFileGroup then
        FillObjects(dataObj, dsDrop);
      PrepareRec(pt, grfKeyState);
      FOnDrop(FControl, FDropRec);
    end;
    dwEffect := GetCursor;
  end else
    dwEffect := DROPEFFECT_NONE;
...
hoffe ich konnte mich dieses mal verständlich machen
BogoMips
"Die Anzahl der Millionen Wiederholungen pro Sekunde, die ein Prozessor in der Lage ist, absolut nichts zu tun."
  Mit Zitat antworten Zitat