Indy i wyszukiwanie nieprzeczytanych wiadomości

0

Hej! Próbuję napisać programik wyświetlający mi tytuły nieprzeczytanych wiadomości. Niestety okazuje się że gdy jest jakaś nieprzeczytana wiadomość to wyświetla wszystkie wiadomości z folderu, jeśli nie - nie wyświetla nic. Fragment programu:

 procedure TForm1.Sprawdz(Sender: TObject);
var
wiad : integer;
begin
  Button1.Enabled := False;
try
  IdIMAP41.Connect();
  IdIMAP41.SelectMailBox(Folder);
  wiad := IdIMAP41.MailBox.TotalMsgs;
  Label1.Caption := 'Ilość wiadomości: ' + IntToStr(wiad);
 while wiad > 0 do begin
  IdMessage1.Clear;
  IdIMAP41.Retrieve(wiad, IdMessage1);
  if (mfSeen in IdMessage1.Flags) then
  ListBox1.Items.Add(IdMessage1.Subject);
  wiad := wiad - 1;
  Application.ProcessMessages;
end;
Finally
  IdIMAP41.Disconnect();
  Button1.Enabled := True;
end;
end;

Problem wydaje się być banalny lecz główkuję się i nie mogę znaleźć rozwiązania. Liczę na Waszą pomoc :)
Pozdrawiam.

0

Błąd był w pętli. Rozwiązanie:

for n:=1 to wiad do begin
  IdMessage1.Clear;
  IdIMAP41.Retrieve(n, IdMessage1);
  if (mfSeen in IdMessage1.Flags) then
  ListBox1.Items.Add(IdMessage1.Subject);
  Application.ProcessMessages;
end; 

1 użytkowników online, w tym zalogowanych: 0, gości: 1