Czesz zna ktoś może jakiś prosty sposób na odbieranie załączników z poczty bez "zawieszania" programu
Napisałem coś takiego :
procedure Tform2.pobierz(ii:integer);
var
il_wiad,j:integer; //ilość wiadomości
il_zal : integer; //ilość załączników
zal_nazwa: string; //nazwa załącznika
begin
//czyszczenie komponentu IdMessage
IdMessage1.Clear;
//ustawienie nazwy użytkownika
IdPOP31.Username :=download[ii].login ;
//ustawienie hasła użytkownika
IdPOP31.Password :=download[ii].haslo ;
//nawiązanie połączenia w przypadku jego braku
If not IdPOP31.Connected then
begin
try
caption:= 'Odbieranie poczty - zestawianie połączenia!!!';
//zestawianie połączenia
IdPOP31.Connect(-1);
caption:= 'Odbieranie poczty - połączony!!!';
except
on exception do
begin
caption:= 'Odbieranie poczty - błąd połączenia!!!';
end;
end;
end;
//odebranie wiadomości w przypadku pomyślnego nawiązania połączenia
if IdPOP31.Connected then
begin
il_zal:=download[ii].ilosc;
while il_zal > 0 do
begin
IdMessage1.Clear;
IdPOP31.Retrieve(download[ii].Numer[il_zal], IdMessage1);
if (IdMessage1.MessageParts.Items[3] is TIdAttachment) then
begin
zal_nazwa := TIdAttachment(IdMessage1.MessageParts.Items[3]).Filename;
TIdAttachment(IdMessage1.MessageParts.Items[3]).SaveToFile('c:\' + zal_nazwa);
j:=j+1;
caption :='pobrano '+inttostr(j)+'/' +inttostr(download[ii].ilosc);
end;
il_zal := il_zal - 1;
end;
end;
end;
W sumie działa tylko że program "zawiesza sie" gdy zapisywany jest załącznik na dysk a "odwiesza" sie dopiero po jego całkowitym zapisaniu :.
Może umiał by ktoś zmodyfikować ten kod żeby tak się nie działo lub dal jakąś wskazówkę jak to naprawić