AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DragOver vom Explorer erkennen

Ein Thema von Guido Eisenbeis · begonnen am 27. Okt 2006 · letzter Beitrag vom 13. Mär 2017
 
AndyOthers

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

Re: DragOver vom Explorer erkennen

  Alt 15. Okt 2007, 14: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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz