![]() |
Drag&Drop Outlook
Hi,
ich benutze in einem meiner Programme die DropFileTarget Komponente (Drag&Drop Component Suite) und diese funktioniert auch ohne Probleme mit Explorer, etc. Jedoch wenn ich aus Outlook in die App ziehe geht es nicht. Jetzt habe ich gesehen das ich den DataFormatAdapter benötige und habe diesen auch eingebaut. Danach bekomme ich auch mit einem Drag aus Outlook das Drop Symbol. Leider weiß ich nicht wie ich das Objekt konvertieren muß um die Datei quasi zu erhalten. Kann mir da jemand helfen oder gibt es eine Doku der Drag&Drop Component Suite zum nachlesen ? Vielen Dank für eure Hilfe |
AW: Drag&Drop Outlook
Hallo,
ist das die hier ![]() Extensive, context sensitive help file and detailed demo applications help file ist durchgestrichen, also gibt es "nur" die Demos, z.B. ![]() Adapter This application demonstrates how to extend the existing target or source components with support for additional data formats using the TDataFormatAdapter component. The TDataFormatAdapter component is an easy alternative to having to write a custom component in order to combine different data formats into one target component. |
AW: Drag&Drop Outlook
Sorry das ich das nochmal aufwärme aber ich hab mir DragDrop Komponenten von Github unter Delphi 10.3 installiert.
Allerdings funktionieren bei mir einige Demos nicht, kann das jemand bestätigen? Die Drag/Drop Demo aus Outlook geht zum Beispiel nicht. LG Mirko |
AW: Drag&Drop Outlook
Hast du ein Office bzw. Outlook 64 Bit? Dann musst du auch die Demos in 64 Bit kompilieren.
|
AW: Drag&Drop Outlook
Hallo Chris,
nein das ist ein Outlook 2019 32 Bit. Das Droptarget wird für Emails nicht erkannt. LG Mirko |
AW: Drag&Drop Outlook
Komisch habs jetzt gerade nochmal versucht und jetzt geht es.
Sorry für die Thermik. LG Mirko |
AW: Drag&Drop Outlook
Ich habe mich jetzt mit den Drag and Drop Komponenten von Anders Melander auseinander gesetzt.
Super Sache, die die ganze Geschichte massiv vereinfacht. Ich will aus meiner Applikation Dateien in eine neue EMail in Outlook ziehen, sodass diese als Anhang auftauchen. Funktioniert super wie in der "Simple Source Demo" gezeigt. Problem ist jetzt folgendes: Ich habe in einer Tabelle die Namen gewisser PDFs wie zum Beispiel Buchtitel1.pdf . Die Datei, die sich auf dem Server dahinter verbirgt wurde beim Upload aber umbenannt in vaweq224sasdf.pdf oder ähnlich kryptisches. Wenn die die Datei jetzt droppe, wird in Outlook die kryptisch umbenannte Version eingefügt, was auch technisch richtig ist denn die Datei heißt ja jetzt tatsächlich so. Fragt ist: Kann ich der Datei nicht ihren ursprünglichen Namen geben, wenn sie in Outlook gedroppt wird? Eventuell vor umbenennen und nach dem Drop wieder den alten Namen geben? LG Mirko |
AW: Drag&Drop Outlook
Hmm..
Kannst Du nicht die DropSource bearbeiten, wenn das Drag aufgerufen wird? Dann könntest Du die besagte Datei, mit dem 'richtigen' Namen, in den Temp Folder kopieren und dann die dortige Datei zum 'Droppen' übergeben. Ähnlich mache ich es bei einem selbst geschriebenen EMail-Viewer, wenn ich die Anhänge in ein Explorer Fenster ziehe.. |
AW: Drag&Drop Outlook
Hallo Holger,
ja das hatte ich auch schon gedacht aber was passiert wenn die Dateien etwas größer sind, dauert das nicht zu lange mit dem Umbenennen. LG Mirko |
AW: Drag&Drop Outlook
Hmm..
Auch wenn die max. Größe des EMail-Anhanges wohl nicht mehr 5/10 MB limitiert ist, solltest Du besser keine hundert MB und mehr per EMail verschicken. Deshalb sollte der gesamte Anhang max 5-10 MB sein und diese sollten schnell genug kopiert werden können. Der Empfänger wird es Dir danken, wenn er nicht gleich diverse MB runter laden muss... ;) Bei meinem EMail-Viewer hatte ich die Anhänge in der .EML bereits beim Öffnen der Datei im temp abgelegt. Wenn Du größere Dateien hast, dann kannst Du diese (mit Upload-Dialog) auch auf einem Share Hoster hochladen und dann per Drop den Link an Outlook übergeben. |
AW: Drag&Drop Outlook
Wir nutzen die DropMaster-Komponente von Rize.
Delphi-Quellcode:
Dafür hatte ich mir mal eine Prozedur geschieben, um den Drag-Vorgang zu initialisieren.
procedure TMyDragSource.ExecuteFileDrag(FileSaveName, AlternateFileName: array of string);
var SL: TStringList; i: Integer; Data: AnsiString; begin SL := TStringList.Create; try CustomFormatData.Clear; for i := 0 to High(FileSaveName) do if (i <= High(AlternateFileName)) and (AlternateFileName[i] <> '') then SL.Add(ExtractFileName(AlternateFileName[i])) else SL.Add(ExtractFileName(FileSaveName[i])); CustomFormatData.AddFormat(DMFileGroupDescriptorFormatName, FileGroupDescriptorFromFileList('', SL)); for i := 0 to High(FileSaveName) do begin with TFileStream.Create(FileSaveName[i], fmOpenRead or fmShareDenyWrite) do try SetLength(Data, Size); if Data <> '' then ReadBuffer(Data[1], Size); finally Free; end; CustomFormatData.AddFormatEx('FileContents', Data, TYMED_HGLOBAL, i); CustomFormatData.Items[CustomFormatData.Count - 1].AllowTrailingNull := False; end; Execute; finally SL.Free; end; end; Das Drag und Drop der WinAPI kennt mehrere Modi, einmal Dateiname als Quelle und anderseits ein Stream als Quelle, mit zusätzlichem Namen. Das Prinzip sollte sich auch mit anderen D&D-Komponenten umsetzen lassen. Mein einziges Problem war, dass das Drag&Drop der VCL nicht mit dem des Windows kompatibel sind und ich nicht gleichzeitig in einer Gridkomponente Zeilen per Delphi-Drag&Drop umsortieren kann und gleichzeitig das auch als Drag-Quelle nach Extern nutzen kann. Als Drop-Ziel ist beides zusammen möglich. |
AW: Drag&Drop Outlook
Ich würde die Datei auch kurzzeitig kopieren/umbenennen. Umbenennen ist von der Größe unabhängig.
Kleiner Hinweis noch: Outlook benötigt nach dem Hinzufügen des Anhangs die Datei selbst nicht mehr. Sie kann also entsprechend schnell zurückbenannt bzw. gelöscht werden und die Mail wird trotzdem richtig verschickt. Wenn himitsus Lösung wie gewünscht funktioniert, wäre das vorzuziehen. |
AW: Drag&Drop Outlook
Hallo zusammen,
also ich habe es gemacht wie Holger und Redeemer es vorgeschlagen haben. Funktioniert perfekt. Danke. LG Mirko |
AW: Drag&Drop Outlook
Zitat:
Vielleicht noch ein anderer Ansatz. Du schreibst, dass du eine neue Email erstellst, um dann Anhänge reinzuziehen. Kann man es nicht auch so machen, dass du die Email gleich mit Anhängen erstellst? So habe ich das gemacht in einer Anwendung. |
AW: Drag&Drop Outlook
Hallo,
ich schließe mich der Frage an. Habe auch ein Problem mit dem Darg Drop aus Outlook. Ich arbeite mit Delphi 10. Beim DragDrop aus Outlook komt ein OLE-Fehler 8004011B. Ich ziehe mir per DragDrop den Inhalt einer Mail in ein DBText. In der Version Delphi 2010 mit einer älteren DragDrop Version funktioniert es wie es soll. Ich habe lange gesucht und nichts gefunden. Vielleicht weiß jemand was der Fehler ist? Danke schonmal im Voraus :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:37 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