AGB  ·  Datenschutz  ·  Impressum  







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

DragOver vom Explorer erkennen

Ein Thema von Guido Eisenbeis · begonnen am 28. Okt 2006 · letzter Beitrag vom 13. Mär 2017
Antwort Antwort
Seite 6 von 7   « Erste     456 7      
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#51

Re: DragOver vom Explorer erkennen

  Alt 24. Sep 2007, 20:00
Hallo,
Zitat von GuenterS:
Kann es sein, dass es sich beim Problem mit dem dropen ganzer Emails aus Thunderbird oder Outlook um ein ähnliches Problem handelt?
nein, das ist was anderes. Wenn ich nachschaue, ob die Datenstruktur vom Typ "CFSTR_FILECONTENTS" ist, sagt mir Windows: "Ja". Wenn ich dann die Daten abholen will, sagt mir Windows: "Fehler" (ich glaube irgendwas mir falscher Parameter). Noch habe ich keine Ahnung, was da los ist.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#52

Re: DragOver vom Explorer erkennen

  Alt 24. Sep 2007, 21:19
Was mich aber stutzig macht ist, dass es mit früheren Versionen der Shelldropper Komponente funktioniert hat, das mit den Anhängen aus Thunderbird.
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#53

Re: DragOver vom Explorer erkennen

  Alt 24. Sep 2007, 21:31
Thunderbird wird ja auch häufiger mal aktualisiert, vielleicht hat sich da in letzter Zeit was geändert...
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#54

Re: DragOver vom Explorer erkennen

  Alt 24. Sep 2007, 21:33
Nein, das kann ich so ziemlich ausschließen, das war immer die gleiche Version .... kann es aber gerne morgen nochmal mit einer der älteren Versionen testen um das auszuschließen.
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
AndyOthers

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

Re: DragOver vom Explorer erkennen

  Alt 28. Sep 2007, 14:45
hallo, auch

das ist mein erster beitrag hier, möchte aber dazu sagen, dass ich diesen topic und die entwicklung der shelldropper-komponente - dazu gleich ein großes lob und n fettes dankeschön - schon seit anfang an mitverfolge.

mir ist dabei auch aufgefallen, dass man in der version 1.2 email-attachments aus dem thunderbird (2.0.0.6) droppen konnte und jetzt in der version 1.6 nichtmehr!?!

bin grad dabei der sache auf den grund zu gehen!? habt jemand vl schon eine idee?

achja: thunderbird blieb der selbe ... nur shelldropper wurde auf den neuesten stand gebracht.
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#56

Re: DragOver vom Explorer erkennen

  Alt 28. Sep 2007, 15:08
Hallo,

ich habe gerade nochmal die Version 1.2 getestet. Auch mit dieser Version tritt das Problem auf, dass das Attachment erst nach dem Droppen wirklich erstellt wird. An den Routinen habe ich auch schon lange nichts wesentliches verändert.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
AndyOthers

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

Re: DragOver vom Explorer erkennen

  Alt 28. Sep 2007, 16:09
hmmm, das ist sehr interessant. ich habe ebenfalls die version 1.2 nochmals ausprobiert und konnte in der drop-ereignis prozedur der shelldropper komponente schon auf die gedroppte datei zugreifen. sobald ich die version 1.6 verwende geht dies an selbiger stelle nicht (siehe obiges problem). ... Komisch

Delphi-Quellcode:
procedure TfrmDokumente.ShellDropper1Drop(Sender: TObject;
  const DropRec: TDropRec);
begin

  ....

end;
also in dieser prozedur kann ich in der v1.2 auf das gedroppte file schon zugreifen, und in der v1.6 nicht!?!
  Mit Zitat antworten Zitat
AndyOthers

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

Re: DragOver vom Explorer erkennen

  Alt 8. Okt 2007, 13:12
hallo

ich habe heut nochmal die versionen 1.2 und 1.6 verglichen und habe glaube ich eine spur entdeckt warum das droppen von mail-attachments aus dem thunderbird in der v1.2 funktioniert und in der v1.6 nicht funktioniert:

version 1.2:
  • im dragenter wird fillobjects ausgeführt, temp-datei wird von thunderbird erstellt, ist aber noch leer
  • dann kommt drop
  • dragenter is schon abgeschlossen und temp-datei von tb ist nun richtig erstellt
  • also kann auf diese dann in ondrop zugegriffen werden

version 1.6:
  • fillobject wird erst im drop (auf jeden fall) ausgeführt, temp-datei wird von thunderbird erstellt, ist aber noch leer
  • somit kann im ondrop nicht auf die temp-dateien von tb zugegriffen werden, da ja die dateien erst nach dem droppen erstellt werden

ich habs in meinem fall jetzt mal so gelöst, dass ich fillobjects auf jeden fall mal im dragenter ausführen lasse, um die tempfiles im drop bzw ondrop schon zu verfügung zu haben. hab meine überlegungen schnellschnell (dh änderungen sind noch nicht elegant ausprogrammiert) ausprobiert und so wie es ausschaut kann ich nun mail-attachments aus thunderbird, outlook express und outlook 2000 droppen.

ps: weiters würd ich im drop nach dem ondrop die (temp)files dann schon wieder löschen.

lg And the others ... and se others ... andy others
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#59

Re: DragOver vom Explorer erkennen

  Alt 9. Okt 2007, 09:35
Hallo,

Zitat von AndyOthers:
ich habe heut nochmal die versionen 1.2 und 1.6 verglichen und habe glaube ich eine spur entdeckt warum das droppen von mail-attachments aus dem thunderbird in der v1.2 funktioniert und in der v1.6 nicht funktioniert:
leider kann ich Deine Ausführungen nicht ganz nachvollziehen.

Zitat von AndyOthers:
version 1.2:
  • im dragenter wird fillobjects ausgeführt, temp-datei wird von thunderbird erstellt, ist aber noch leer
  • dann kommt drop
  • dragenter is schon abgeschlossen und temp-datei von tb ist nun richtig erstellt
  • also kann auf diese dann in ondrop zugegriffen werden
Bei mir wird erst nach dem OnDrop die Datei mit Inhalt gefüllt, obwohl sie in OnDragEnter/OnDrop schon existiert (aber Null Byte groß ist).

Zitat von AndyOthers:
version 1.6:
  • fillobject wird erst im drop (auf jeden fall) ausgeführt, temp-datei wird von thunderbird erstellt, ist aber noch leer
  • somit kann im ondrop nicht auf die temp-dateien von tb zugegriffen werden, da ja die dateien erst nach dem droppen erstellt werden
Die Methode FillObjects wird in DragEnter immer ausgeführt. Da Thunderbird keine FileGroup verwendet, werden auch die Dateien exakt so wie in der Methode Drop eingelesen.
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).

Zitat von AndyOthers:
ps: weiters würd ich im drop nach dem ondrop die (temp)files dann schon wieder löschen.
Das die temporäre Datei von Thunderbird erstellt wird, muss sie auch von Thunderbird wieder gelöscht werden. Es gibt keine Möglichkeit, festzustellen, ob die gedroppte Datei temporär ist.
Wenn die Dateien per FileGroup übergeben wurden, dann haben sie auch das Flag ftTemporary und werden, sofern das Flag gesetzt bleibt, auch wieder gelöscht.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
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
Antwort Antwort
Seite 6 von 7   « Erste     456 7      


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 23:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz