Indy poczta zapis zalacznikow bez "zawieszania programu

0

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ć

0

poczytaj o wątkach :)
Wątki
Rozdział 8

0

Faktycznie pomogło dzięki wielkie :) o to właśnie mi chodziło

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