ďťż

Ładny brzuch

Mam sobie funkcjię do ściągania plików z internetu, która pokazuje postęp ściągania (wzorowałem sie na tym artykule Ściąganie....
Kawałek tej funkcji wygląda tak:
procedure TForm1.Download(adresURL,nazwaPliku:string;size:integer;progress:TProgressBar); var plik :File; inOpen,inURL :HINTERNET; ileZnakow, dwsize :DWORD; dwBufLen, dwIndex :DWord; sciagnieto, sizebuf :integer; bufor :array[1..4096] of byte; buf :Pointer; Begin /* ... */ Label1.Caption:='Ściąganie pliku...'; while (ileZnakow <> 0) and (Stop = false) and (sciagnieto<size) do begin InternetReadFile(inURL, @bufor, SizeOf(bufor),ileZnakow); InternetQueryDataAvailable(inURL,dwsize, 0, 0); BlockWrite(plik, bufor,ileZnakow); sciagnieto:= FileSize(plik); Label2.Caption:='Ściągnięto '+ IntToStr(sciagnieto); progress.Position:= sciagnieto; Application.ProcessMessages; /* ... */ end;

I teraz pojawia mi się problem, jak chcę ściągnąć przy pomocy tej funkcji dwa rózne pliki naraz, to ściąga się pierwszy i jak dam mu drugi plik, to ściąganie pliku pierwszego zatrzymuje się i zaczyna się ściągać drugi i po jego zakończeniu dokańcza się drugi plik. (coś jak stos);
Rozwiązaniem problemu było by skopiowanie drugiej takiej funkcji, lecz jest to nie poręczne (np. jak bym chciał ściągać wiele plików)
Więc czy wiecie jak temu zaradzić?
Myślałem żeby można zastosować klasy, lecz nie znam ich dobrze w Delphi. I czy klasy będą tutaj rozwiązaniem ?




Myślałem żeby można zastosować klasy, lecz nie znam ich dobrze w Delphi. I czy klasy będą tutaj rozwiązaniem ?
Mogą Ci się przydać wątki.
Poczytaj trochę o nich.

dzięki.
Jednak wątki mają wadę - nie mogę dobrze wyświetlać paska postępu w ściąganiu, ani nie można wyświetlić zwykłej wiadomośi : ShowMessage();
Cały czas mam ten błąd: canvas does not allow drawing
Czy istnieje jakaś matoda ominięcia tego ?

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •