Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Drag&Drop Outlook (https://www.delphipraxis.net/202744-drag-drop-outlook.html)

himitsu 9. Mär 2020 18:19

AW: Drag&Drop Outlook
 
Wir nutzen die DropMaster-Komponente von Rize.

Delphi-Quellcode:
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;
Dafür hatte ich mir mal eine Prozedur geschieben, um den Drag-Vorgang zu initialisieren.

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.

Redeemer 9. Mär 2020 21:11

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.

oakley 10. Mär 2020 20:17

AW: Drag&Drop Outlook
 
Hallo zusammen,

also ich habe es gemacht wie Holger und Redeemer es vorgeschlagen haben.
Funktioniert perfekt.
Danke.

LG

Mirko

zeras 15. Mär 2020 18:13

AW: Drag&Drop Outlook
 
Zitat:

Zitat von oakley (Beitrag 1459268)

Ich will aus meiner Applikation Dateien in eine neue EMail in Outlook ziehen, sodass diese als Anhang auftauchen.

Wie ich a jetzt sehe, ist das Problem gelöst.
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.

MES 21. Mai 2021 14:41

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 11:04 Uhr.
Seite 2 von 2     12   

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