Hier sind bestimmt noch Units drin, die nicht gebraucht werden (z.B. Graphics, Controls)
Delphi-Quellcode:
unit WebUpdate;
interface
{$i WebUpdate.inc}
// Diverse Compilerschalter.
// bitte dringend überprüfen, ob diese euren Anforderungen gerecht werden.,
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Und noch ne Idee:
Man sollte die Update-Komponente vom
Downloader trennen.
Soll heisen, es wäre gut, wenn man
Indy ganz einfach durch etwas anderes austauschen könnte.
Der Downloader hat ja nicht anderes zu tun, als eine
URL herunterzuladen und in einer best. Datei abzulegen.
Dabei soll er aber nach Möglichkeit OnProgress Event unterstützen, damit man ggf. eine ProgressBar ansteuern kann.
Delphi-Quellcode:
TDownloader =
class(TObject)
public
procedure DownloadURL(
const URL, DestFilename :
string);
virtual;
property OnProgress: TProgressEvent;
end;
Davon könnte man konkrete Klassen ableiten: TIndy9Downloader, TIndy10Downloader und TSimpleDownloader.
TSimpleDownloader benötigt kein
Indy, sondern verwendet die Funktion URLDownloadToFile aus
Unit UrlMon.
Dafür kann der TSimpleDownloader keine ProgressEvents erzeugen; aber das kann man verschmerzen.
Wenn ein Downloader eine
URL nicht runterladen konnte, dann wirft er eine
Exception.