unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, HTTPGet, INIFiles;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
ProgressBar1: TProgressBar;
HTTPGet1: THTTPGet;
HTTPGet2: THTTPGet;
SaveDialog1: TSaveDialog;
procedure Button1Click(Sender: TObject);
procedure HTTPGet1DoneFile(Sender: TObject; FileName: String;
FileSize: Integer);
procedure HTTPGet1Error(Sender: TObject);
procedure HTTPGet2DoneFile(Sender: TObject; FileName: String;
FileSize: Integer);
procedure HTTPGet2Error(Sender: TObject);
procedure HTTPGet2Progress(Sender: TObject; TotalSize,
Readed: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
const
wersja = '1.0.7';
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
HTTPGet1.URL := 'http://www.web-page.pl/version.ini'; //lokalizacja pliku z informacją
HTTPGet1.FileName := ExtractFilePath(Application.ExeName) + 'version.ini';
HTTPGet1.GetFile; //pobranie pliku ini
Memo1.Lines.Add('Pobieranie informacji...');
end;
procedure TForm1.HTTPGet1DoneFile(Sender: TObject; FileName: String;
FileSize: Integer);
var
INI : TINIFile;
updtVersion : string;
cyfra1 : integer;
cyfra2 : integer;
updtCyfr1 : integer;
updtCyfr2 : integer;
begin
Memo1.Lines.Add('Sprawdzanie, czy jest nowa wersja...');
INI := TINIFile.Create(HTTPGet1.FileName);
try
updtVersion := INI.ReadString('update','version',''); //odczytanie wersji z pliku ini
//nie śmiejcie sie z tego sposobu. To tylko przykład :)
cyfra1 := StrToInt(wersja[1]);
cyfra2 := StrToInt(wersja[3]);
updtCyfr1 := StrToInt(updtVersion[1]);
updtCyfr2 := StrToInt(updtVersion[3]);
if (cyfra1 < updtCyfr1) or (cyfra2 < updtCyfr2) then //sprawdzenie, czy jest nowa wersja
begin
Memo1.Lines.Add('Jest nowa wersja programu!');
{wyświetlenie zapytania. Jeśli użytkownik wybierze Tak, rozpoczyna się pobieranie programu }
if Application.MessageBox('Czy chcesz pobrać nową wersję programu?','Informacja',MB_YesNo) =
ID_NO then
exit
else
begin
HTTPGet2.URL := INI.ReadString('update','url','');
if SaveDialog1.Execute then // tu użytkownik wybierze, gdzie zapisać program
HTTPGet2.FileName := SaveDialog1.FileName;
HTTPGet2.GetFile; //pobieranie pliku
Memo1.Lines.Add('Pobieranie pliku...');
end;
end
else
Memo1.Lines.Add('Nie znaleziono nowej wersji programu!');
finally
INI.Free;
DeleteFile(HTTPGet1.FileName); //usunięcie pliku ini
end;
end;
procedure TForm1.HTTPGet1Error(Sender: TObject);
begin
Memo1.Lines.Add('Wystąpił błąd!');
end;
procedure TForm1.HTTPGet2DoneFile(Sender: TObject; FileName: String;
FileSize: Integer);
begin
Memo1.Lines.Add('Pobieranie zakończone sukcesem!');
end;
procedure TForm1.HTTPGet2Error(Sender: TObject);
begin
Memo1.Lines.Add('Wystąpił błąd podczas pobierania pliku!');
end;
procedure TForm1.HTTPGet2Progress(Sender: TObject; TotalSize,
Readed: Integer);
begin
ProgressBar1.Max := TotalSize;
ProgressBar1.Position := Readed;
end;
end.
Edit:
Znalazłem błąd, nie dałem adresu url.