Indy i wyszukiwanie nieprzeczytanych wiadomości

Indy i wyszukiwanie nieprzeczytanych wiadomości
AppleJack
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
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:

Kopiuj
 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.

AppleJack
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

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

Kopiuj
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; 

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.