AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi pop3abfrage + progressbar -> fehler
Thema durchsuchen
Ansicht
Themen-Optionen

pop3abfrage + progressbar -> fehler

Ein Thema von heribert · begonnen am 5. Jun 2005 · letzter Beitrag vom 5. Jun 2005
Antwort Antwort
heribert

Registriert seit: 5. Jun 2005
18 Beiträge
 
#1

pop3abfrage + progressbar -> fehler

  Alt 5. Jun 2005, 17:01
hi, ich hab mir ein programm gecodet, dass sich zu einem pop3-server connectet und in ein listview alle namen von den vorhanden email-attachments schreibt. das klappt auch ganz gut, dann hab ich mir hier aus dem forum einen code für eine progressbar geholt, den man bei der indy pop3-komponente in den onwork-event schreibt. die funktioniert jetzt zwar, aber dafür zeigt das programm nur noch eine zeile an und gibt dann den fehler "listenindex überschreitet das maximum(2)" aus...

der code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Pop3ServerName, Pop3ServerUser, Pop3ServerPassword: string;
  Pop3ServerPort, FMsgCount, FMailBoxSize, intindex, intindex2: integer;
  li: TListItem;
begin
  IdPOP31.Host := Pop3ServerName;
  IdPOP31.Port := Pop3ServerPort;
  IdPOP31.Username := Pop3ServerUser;
  IdPOP31.Password := Pop3ServerPassword;
  IdPOP31.Connect;
  FMsgCount := IdPOP31.CheckMessages;
  FMailBoxSize := IdPOP31.RetrieveMailBoxSize div 1024;
for intIndex := 1 to FMsgCount do begin
  IdPOP31.Retrieve(intIndex, IdMessage1);
  for intIndex2 := 0 to Pred(IdMessage1.MessageParts.Count) do begin
   if (IdMessage1.MessageParts.Items[intIndex2] is TIdAttachment) then begin
      li := ListView1.Items.Add;
      li.Caption :=
        TIdAttachment(IdMessage1.MessageParts.Items[intIndex]).Filename;
   end;
  end;
end;
end;

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

procedure TForm1.IdPOP31WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCountMax: Integer);
begin
if AWorkMode = wmRead then
  Label4.Caption:='Downloading...'
else
  Label4.Caption:='uploading Data';
ProgressBar1.Max:=51402; //ist nur zu testzwecken, da AWorkCountMax immer 0 war...
end;

procedure TForm1.IdPOP31WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
if AWorkMode = wmRead then
  Label4.Caption:='Download wurde beendet.'
else
  Label4.Caption:='uploading complete';
end;
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: pop3abfrage + progressbar -> fehler

  Alt 5. Jun 2005, 17:13
Hai heribert,

ich glaube hier benutzt Du die falsche "Schleifen-Variable":
Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
.
.
for intIndex := 1 to FMsgCount do begin
  IdPOP31.Retrieve(intIndex, IdMessage1);
  for intIndex2 := 0 to Pred(IdMessage1.MessageParts.Count) do begin
   if (IdMessage1.MessageParts.Items[intIndex2] is TIdAttachment) then begin
      li := ListView1.Items.Add;
      li.Caption :=
        TIdAttachment(IdMessage1.MessageParts.Items[[b]intIndex[/b]]).Filename;
                                                    ^^^^^^^^
   end;
  end;
end;
end;
Da müsste meine ich intIndex2 stehen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
heribert

Registriert seit: 5. Jun 2005
18 Beiträge
 
#3

Re: pop3abfrage + progressbar -> fehler

  Alt 5. Jun 2005, 17:18
hmm, jo, jetz gehts zwar, aber jetzs teth da 2mal derselbe name untereinander... und das sind mit sicherheit 2 verschieden
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: pop3abfrage + progressbar -> fehler

  Alt 5. Jun 2005, 17:35
Hallo heribert,

ich weiß nicht wo du den Code gefunden hast, aber über den Fehler sind schon andere gestolpert:

Delphi-Quellcode:
...
  FMsgCount := IdPOP31.CheckMessages;
  for intIndex := 1 to FMsgCount do begin
    IdPOP31.Retrieve(intIndex, IdMessage1);
...
Das muss so aussehen:

Delphi-Quellcode:
var
  msgList: TStringList;
  msgNum: string;
...
  msgList := TStringList.Create; // soviel Zeit muss sein
...
  if not idPOP3.UIDL(msgList) then begin
    msgList.Free;
    Exit;
  end;

  for intIndex := 0 to msgList.Count - 1 do begin
    msgNum := msgList[intIndex];
    SetLength(msgNum, Pos(' ', msgNum) - 1);
    IdPOP31.Retrieve(StrToInt(msgNum), IdMessage1);
...
  msgList.Free;
Grüße vom marabu
  Mit Zitat antworten Zitat
heribert

Registriert seit: 5. Jun 2005
18 Beiträge
 
#5

Re: pop3abfrage + progressbar -> fehler

  Alt 5. Jun 2005, 17:44
hmm, sorry, aber dein code macht bei mir nur ne access violation...
und den anderen code hab ich im übrigen aus der indy mailclient-demo...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: pop3abfrage + progressbar -> fehler

  Alt 5. Jun 2005, 17:46
Zitat von heribert:
hmm, sorry, aber dein code macht bei mir nur ne access violation...
Hilfreich wäre jetzt WO er eine AV auslöst.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
heribert

Registriert seit: 5. Jun 2005
18 Beiträge
 
#7

Re: pop3abfrage + progressbar -> fehler

  Alt 5. Jun 2005, 17:52
hmm, ich glaub, ich hab den fehler gefunden:
Delphi-Quellcode:
  IdMessage1.Clear;
  IdPOP31.RetrieveHeader(intIndex, IdMessage1);
dumm, was? *g*
aber seltsam sits schon, dass das auch mal ohne das IdMessage1.Clear ging...
  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 16:24 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