![]() |
Fortschritt vom senden einer EMail (idsmtp) per Progressbar
Hallo Leute!
Ich versuche den Fortschritt beim Senden einer Email per IdSMTP (Indy) auf einem Progressbar darzustellen. Das senden funktioniert perfekt, nur, weil die angehängten Dateien oft sehr groß sind, möchte ich den Benutzer mit der Progressbar über den Status beim Senden informieren. Weiß jemand wie ich das anstellen kann, und auf welchen Teil von IdSMTP ich zugreifen muss? mfg hitmiccs |
Re: Fortschritt vom senden einer EMail (idsmtp) per Progress
So weit ich weiß, kennt die Komponente OnWorkBegin, OnWork und OnWorkEnd oder so.
|
Re: Fortschritt vom senden einer EMail (idsmtp) per Progress
Ist richtig, das hatte ich in einem anderen Forum auch schon gehört/gelesen. Leider geben mir diese Eigenschaften immer den Wert "0" zurück... jemand noch eine Idee?
|
Re: Fortschritt vom senden einer EMail (idsmtp) per Progress
Wie andere Ideen? Die Auswertung dieser Ereignisse dieser Komponente ist die einzige Idee von mir und die vernünftigeste dies bezüglich. Und wenn es bei dir nicht funktioniert, dann hast du einen Fehler in deinem Code und den solltest du finden, anstatt gleich nach einer anderen Lösung zu fragen, nur weil die einzig vernünftige Lösung nicht gleich auf Anhieb funktioniert.
|
Re: Fortschritt vom senden einer EMail (idsmtp) per Progress
Zitat:
Delphi-Quellcode:
Also schlicht die Message als File speichern und die Dateigrösse ermitteln.
procedure TdmMailHKA.IdSMTP1WorkBegin(Sender: TObject;
AWorkMode: TWorkMode; const AWorkCountMax: Integer); var FN : string ; begin FN := format ('c:\temp\%s.txt',['Mail']) ; IndyMessage.SaveToFile (FN) ; FS := TFileStream.Create(FN,fmOpenRead) ; ProgressBar.Max := FS.Size ; F.free ; end; |
Re: Fortschritt vom senden einer EMail (idsmtp) per Progress
Immer mit der Ruhe @Luckie, ich würde nicht fragen wenn ich nicht schon von anderen gehört hätte, das dieser "Fehler" existiert :hi: :thumb:
Ich teste jetzt den Code von Jelly... |
Re: Fortschritt vom senden einer EMail (idsmtp) per Progress
Ich würde natürlich keine Datei verwenden, sondern ein TMemoryStream und die EMail im Speicher abspeichern, Grösse ermitteln und Speicher freigeben. Sollte natürlich schneller laufen.
Dimo |
Re: Fortschritt vom senden einer EMail (idsmtp) per Progress
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:49 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