AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi idPOP3 und ProgressBar
Thema durchsuchen
Ansicht
Themen-Optionen

idPOP3 und ProgressBar

Ein Thema von Sascha L · begonnen am 8. Feb 2005 · letzter Beitrag vom 9. Feb 2005
Antwort Antwort
Sascha L

Registriert seit: 4. Jun 2004
Ort: Hamm
390 Beiträge
 
Delphi 2006 Professional
 
#1

idPOP3 und ProgressBar

  Alt 8. Feb 2005, 16:37
Hallo,

ich nutze die idPOP3-Komponente (Indy 10) und eine Progressbar.

Die Progressbar soll mir den aktuellen Download-Fortschritt anzeigen, dafür verwende ich die Ereignisse "OnWork", "OnWorkBegin" und "OnWorkEnd".

Ich habe zum Testen mal in den Ereignissen folgendes reingeschrieben:

Memo1.Lines.Add(IntToStr(AWorkCount)); Mir ist dabei aufgefallen, dass die Variable auch einen Wert beim Verbinden zum Server und beim Einloggen annimmt.

Insgesamt wird also AWorkCount mit neuen Daten gefüllt. (Verbinden, Einloggen, Email downloaden).

Ich habe also bei OnWorkEnd die Progressbar-Position wieder auf 0 gesetzt, damit er wieder von vorne anfängt. Sonst würde er ja schon 100% anzeigen, wenn er sich gerade mal mit dem Server verbunden hat.

Wie bekomme ich es aber nun hin, dass er mir nur den Fortschritt beim Dowloaden der Email anzeigt, denn das Verbinden und Einloggen ist überflüssig, da es nur ein paar Bytes sind.

Beim Test mit dem Memo ist mir aufgefallen, dass AWorkCountMax stets 0 ist!! d.h. meine ProgressBar wird sofort auf 100% gesetzt, obwohl er die Email gerade erst anfängt herunterzuladen.

Hat jemand dasselbe Problem und es schon behoben, oder kann mir allgemein hier weiterhelfen?

Gruß
Sascha
Sascha
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#2

Re: idPOP3 und ProgressBar

  Alt 9. Feb 2005, 01:17
Mit RetrieveMsgSize ermittelst du die Größe der Nachricht. Damit OnWork in Verbindung mit einer ProgressBar läuft, musst du die Nachricht mit RetrieveRaw abholen. Benutzt du Retrieve, wird zu erst der Header geholt und dann die Nachricht. Beides zusammen ergeben dann aber wieder die Größe von RetrieveMsgSize.


Edit: \\ Mein Beitrag war auf Indy 9 bezogen. Ob bei Indy 10 was geändert worden ist, das weiß ich nicht. Einfach mal ausprobieren.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Sascha L

Registriert seit: 4. Jun 2004
Ort: Hamm
390 Beiträge
 
Delphi 2006 Professional
 
#3

Re: idPOP3 und ProgressBar

  Alt 9. Feb 2005, 18:02
Bei RetrieveRaw kann ich aber nicht mehr angeben, wohin die Nachricht geladen werden soll, nämlich in idMessage1.


EDIT:

Ich habe es nun so realisiert:

Bei der Prozedur, die die Mails abruft, etc. habe ich vor

idPOP31.Retrieve(1,idMessage1); msgsize := idPOP31.RetrieveMSGSize geschrieben, wobei msgsize eine globale Variable vom Typ Integer ist.

Bei OnWorkBegin und OnWork habe ich die Bedingung (if AWorkMode = wmRead), sodass er Anfragen zum Server (Connect, Login) nicht berücksichtigt. Des Weiteren habe ich nun als Maximum für die Progessbar msgsize genommen.
Sascha
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:01 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