Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Drag and Drop mit Outlook (https://www.delphipraxis.net/192199-drag-drop-mit-outlook.html)

Hobbycoder 28. Mär 2017 09:42

Drag and Drop mit Outlook
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi,

ich versuche mich gerade an einem Projekt, wo ich Anhänge aus Outlook direkt per Drag and Drop in meine Anwendung, und von dort auf die Festplatte befördern will.

ich benutze die Drag-and-Drop-Component-Suite.
Mit dem beiliegenden Demo "AsyncTarget" klappt das auch wunderbar.
Wenn ich das aber in meinem Projekt nachvollziehe, nicht mehr. Mein Panel wird einfach nicht als DropTarget registriert. Ich habe meines Wissens alle notwendigen Eigenschaften der Komponenten gesetzt. Aber irgendwo muss ich was falsch gemacht haben.
Mag mal jemand drüber schauen, und mir sagen, wo ich den Fehler mache?
Ich habe beides mal als Anhang angehängt.

2. Ist zwar nicht so wichtig, aber den TDropDummy, der ja in dem Beispiel AsyncTarget auch drin ist, wofür brauche ich den?

PS: Sollte es gegen irgendwelche Regeln oder Rechte verstoßen, das Beispiel "AsyncTarget" aus der Drag-and-Drop-Component-Suite hier zu posten, möge man mich bitte ansprechen. Ich würde es dann natürlich sofort wieder entfernen.

Gruß Hobbycoder

zagota 28. Mär 2017 10:18

AW: Drag and Drop mit Outlook
 
Zur Komponente kann ich nichts sagen, kenne ich nicht.
Läuft deine EXE als Standalone oder in der IDE? Mal ohne IDE versuchen.

cu

Hobbycoder 28. Mär 2017 10:20

AW: Drag and Drop mit Outlook
 
Beide laufen in der IDE. Wenn's mit dem Demo in der IDE geht, dann sollte es auch mit meinem Testprojekt in der IDE gehen.

Hobbycoder 28. Mär 2017 12:12

AW: Drag and Drop mit Outlook
 
Den Fehler habe ich gefunden.
Jetzt läuft es in meiner Testanwendung auch. Nur in der eigentlichen Anwendung kann ich machen was ich will, er machte es nicht.
Ich habe schon alles wieder rausgeschmissen, die DCU's gelöscht und alles wieder neu eingestellt. Das DropTarget (ein Panel) reagiert einfach nicht darauf, wenn ich einen Anhang rüberhole.

Gibt es evtl. Probleme in Verbindung mit VirtualStringTree und Draganddrop?

HolgerX 28. Mär 2017 12:28

AW: Drag and Drop mit Outlook
 
Hmm..

Was ich in der DFM sehen kann (Hab die Komponente nicht!) ist,
das dein dtfrmtdptr1: TDataFormatAdapter auf enabled := false steht.

Hobbycoder 28. Mär 2017 12:36

AW: Drag and Drop mit Outlook
 
Ja, das war der Fehler, den ich im Testprojekt dann auch gefunden hatte. Dann lief sie auch.

Aber in der eigentlichen Anwendung habe ich den jetzt gesetzt. Da scheint noch was anderes zu stören.
Ein TDropFileTarget in der Mainform läuft. Aber das TDropEmptyTarget in Verbindung mit TDataFormatAdapter in einer anderen Form will nicht laufen. Ich hatte das TDropFileTarget auch schon rausgeschmissen und TDropEmptyTarget/TDataFormatAdapter direkt auf der Mainform plaziert, aber das hat nichts geändert.
Es mag ja meine eigene Blindheit zu sein, aber ich habe das jetzt einige Male ausprobiert, auch mit 2-3 Unterformen in der Testanwendung (wo es jetzt immer funktioniert), aber in der eigentlichen Anwendung bekomme ich es nicht zum laufen. (leider darf ich die so hier nicht posten).

Hobbycoder 28. Mär 2017 12:45

AW: Drag and Drop mit Outlook
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hab das grad mal geklärt. Die eine Form darf ich hier posten. Vielleicht fällt dir ja noch ein Fehler auf. Ist ja nicht wirklich viel drin.

HolgerX 28. Mär 2017 12:57

AW: Drag and Drop mit Outlook
 
Hmm..

Delphi-Quellcode:
 object DropEmptyTarget: TDropEmptyTarget
    DragTypes = [dtCopy, dtLink]
    OnDrop = DropEmptyTargetDrop
    Target = pnl1
    WinTarget = 0
    Left = 720
    Top = 464
  end

Hier ist WinTarget mit 0 besetzt (wofür auch immer), das gibt es bei deinen TestProgs nicht..

Hobbycoder 28. Mär 2017 13:08

AW: Drag and Drop mit Outlook
 
Der Parameter WinTarget ist im OI immer 0. Warum der jetzt mal in der dfm steht und mal nicht...??
Leider gibt es zu der Componente recht wenig Dokumentation, und wofür der Parameter steht, ist mir nicht bekannt. Laut http://melander.dk/delphi/dragdrop/ ist kein Helpfile verfügbar. Und von wem das jetzt gepflegt wird, weiß ich leider nicht.
Ich schaue mal ein bisschen im Source rum, vielleicht finde ich heraus, wofür der Parameter da ist.
Ist auf jeden Fall ein HWND.
Ich könnte mir vorstellen, dass über Wintarget das Target zur Runtime per Handle gesetzt werden könnte.

Hobbycoder 28. Mär 2017 13:26

AW: Drag and Drop mit Outlook
 
Aber genau DAS war die Lösung.

Ich habe jetzt mal das Target im OI leer gelassen und zur Runtime im Create der Form über WinTarget das Handle des Panels gesetzt. Was soll ich sagen......es funktioniert :-D:-D:-D

Holger, du hast echt ein gut bei mir ;-)

Jetzt nehme ich noch mal das Wintarget aus der dfm raus. Glaube das wird funktionieren.
Ich nehme an, dass er beim Laden des Formulars erst das Target mit dem Panel setzt, und anschließend das Handle über WinTarget wieder mit 0 überschreibt. Dann konnte es nicht funktionieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 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