Entwickler-Ecke

Internet / Netzwerk - POP3 Fehler


Fighter#1 - Sa 26.11.05 13:18
Titel: POP3 Fehler
Hallo,
Ich hab meim kleines Emailprogramm das eigentlich mit diesem Code
Die Emails Empfangen sollte.
Das Programm ist online (über einen anderen Button ...)
Ich lasse alle Header und Absender in zwei Spalten in einer Tabelle anzeigen und möchte, das ich wenn ich auch eine Zeile klicke der Text dieser Email in einem Memeo erscheint.

Warum kommt dann diese Fehlermeldung??

Der Index der Liste Überschreitet das Maximum(2)

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
   procedure TForm1.StringGrid1Click(Sender: TObject);
     var Zahl,i : Integer;
     begin

IDMessage1.Clear;



Memo1.Clear;

Zahl :=StringGrid1.Selection.Top ;

IF IDPOP31.Connected = True Then begin


IDPOP31.Retrieve(Zahl,IDMessage1);

 For i := 0 TO 4 do begin

      Memo1.Lines.AddStrings(TIdText(IdMessage1.MessageParts.Items[i]).Body);

end;

Memo1.Lines.Add( IDMessage1.Body.Text);

Memo1.Perform(WM_VSCROLL, SB_TOP, 0);

end;
end;


Hansi@OMG - Sa 26.11.05 15:33

Zitat:


Delphi-Quelltext
1:
2:
3:
4:
5:
For i := 0 TO 4 do begin

      Memo1.Lines.AddStrings(TIdText(IdMessage1.MessageParts.Items[i]).Body);

end;



Dieser Fehler tritt nur auf, idmessage1.messageparts.items[i] weniger als 5 werte hat, probier mal da von 0 to 3 oder so.


Fighter#1 - Sa 26.11.05 22:14
Titel: Sorry tut ed
Hat leider nicht getan.

Hab aber den richtigen Code Schnipsel gefunden


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
  for i := 0 to Pred(IdMessage1.MessageParts.Count) do begin
   If IdMessage1.MessageParts.Items[i] is TIdText Then
   Begin
     Memo1.Lines.AddStrings(TIdText(IdMessage1.MessageParts.Items[i]).Body);
   end
  else begin
     Memo1.Lines.AddStrings(IdMessage1.Body);
  end;


Fighter#1 - Sa 26.11.05 22:15
Titel: Sorry tut ed
Hat leider nicht getan.

Hab aber den richtigen Code Schnipsel gefunden


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
  for i := 0 to Pred(IdMessage1.MessageParts.Count) do begin
   If IdMessage1.MessageParts.Items[i] is TIdText Then
   Begin
     Memo1.Lines.AddStrings(TIdText(IdMessage1.MessageParts.Items[i]).Body);
   end
  else begin
     Memo1.Lines.AddStrings(IdMessage1.Body);
  end;