Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi mail status ... progessbar (https://www.delphipraxis.net/25295-mail-status-progessbar.html)

edi-design 4. Jul 2004 12:21


mail status ... progessbar
 
hi leute

ich bruach mal wieder eure hilfe ;)

und zwar sitz ich grade an einem kleinen tool, für meine community, das tool versendet emails, an bestimmte adressen, mit größerem anhang (so 10-15mb)
über den sinn bruacht ihr euch keien gedanken amchen ;) ich weiß das es sich für euch sicherlich komisch anhört ;)

und zwar läuft das mit dem senden auch super und einwandfrei, mails kommen an, auch mit dne anhängen ;)
ich benutze zum sendne die indy-komponenten (TIDsmtp)

jetzt hätte ich aber gerne ne progressbar drin, welche anzeigt, wieviel von der mail (dem anhang) schon gesendet wurde, aber ich weiß absolut nciht wie ich das machen kann ;(

hoffe ihr könnt mir helfen ;(

cu andré

Stevie 5. Jul 2004 08:48

Re: mail status ... progessbar
 
Ich hab dir mal ein kleines Beispiel zusammengebastelt:
Delphi-Quellcode:
procedure TForm1.IdSMTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCountMax: Integer);
begin
  ProgressBar1.Max := FileSizeByName('C:\DreamControls.chm');
  ProgressBar1.Position := 0;
end;

procedure TForm1.IdSMTP1Work(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
begin
  ProgressBar1.Position := AWorkCount;
end;

procedure TForm1.IdSMTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
  ProgressBar1.Position := 0;
end;
Normalerweise sollte man AWorkCountMax nehmen, um die Anzahl der zu übertragenden Bytes herauszufinden, aber
Zitat:

Zitat von Die Indy-Hilfe
AWorkCountMax indicates the maximum number of bytes expected for the operation sent to OnWorkBegin, or 0 when the number of bytes not known.

Leider ist das, was ich dort fett dargestellt habe, bei der Übertragung einer Message der Fall.
Wenn du es also genau machen willst, dann musst du dir die einzelnen Teile vornehmen und die Größe selber zusammenbasteln.

edi-design 5. Jul 2004 14:34

Re: mail status ... progessbar
 
danke dir vielmals für diene hilfe ;)
funzt einwandfrei

da ich ja sowieso nur auf die anhänge der mails ausbin, interessierne mich die par kb text net, die machen da keinen großen aussschlag, also reichts mit filesize ;)

jetzt hab ich nur ein problem ;(

und zwar seit dem ich progrssbar drin hab, fiert das programm ein ;(
also progressbar läuft zwar weiter und er sendet auch, aber ich könnte beispielsweise keine button mehr drücken während er sendet ;(

das antifreeze von indy hab ich schon dabei ;( funzt aber auch ent

hat jemand ne idee ? ;)

cu andré

Stevie 5. Jul 2004 14:37

Re: mail status ... progessbar
 
Versuch's mal mit nem Application.ProcessMessages im OnWork-Event...

edi-design 5. Jul 2004 14:48

Re: mail status ... progessbar
 
danke dir ;)

du bist mein held ;)

funzt so einwandfrei, zwar mit verzögerung von ca. 1sek, aber damit kann ich 100% leben ;)
haußtsache es reagiert überhaupt ;)

cu andré

edi-design 5. Jul 2004 15:57

Re: mail status ... progessbar
 
sry wegen dem doppel post ;(
hab abe rnoch eine wichtige frage, dann kann ich den thread als beantwortet abstemplen ;)

und zwar würde mich nur interessieren, wie schnell de rupload jetzt is, also wie mit welchem speed die mail gesendet wird ;)

thx 4 help

cu andré

Stevie 5. Jul 2004 16:17

Re: mail status ... progessbar
 
Einen Timer und das hier:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Label1.Caption := Format('%d Bytes/sek', [BytesSend - Start]);
  Label1.Repaint;
  Start := BytesSend;
end;
Den Timer in OnWorkBegin enablen und im OnWorkEnd disablen.
Start in diesen beiden Methoden auf 0 setzen; BytesSend im OnWork auf AWorkCount setzen

edi-design 5. Jul 2004 17:41

Re: mail status ... progessbar
 
danke dir ;)
was würde ich nur ohne dich machen ;)

funzt einwandfrei, hatte mir das auch sleber mit nem timer gedacht, aber flasch umgestezt, udn zwar hab ich die sekunden gezählt dann die bytessend durch vergangegene sekunden geteilt, aber irgendwei ging das net ;(

einziges prob noch ;(
der startet den timer erst nachdem er gesendet hat ;( ka wieso ;( der zählt erst am ende runter ;(

cu andré

Stevie 6. Jul 2004 07:42

Re: mail status ... progessbar
 
Tja... :wink:
Da fehlt 100%ig noch ein Application.ProcessMessages im OnWork-Event.

edi-design 6. Jul 2004 15:41

Re: mail status ... progessbar
 
hmm eigneltich isses drin ;(

egal werd den fehler shcon finden ^^

nochmal vielen vielen dank für deine hilfe

cu andré


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:49 Uhr.
Seite 1 von 2  1 2      

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