Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > докачка файлов


Автор: Evghenusi 11.10.2006, 15:12
помогите сделать докачку файлов с IdHTTP

вот код который я использую
Код

var
  Form1: TForm1;
  FStartDate : TDateTime;
  Num : Integer=0;
  Registre  : TRegistry;
  Directory, Comment : String;
  Version, NumVers : Integer;
const
  INTERNET_CONNECTION_MODEM           = 1;
  INTERNET_CONNECTION_LAN             = 2;
  INTERNET_CONNECTION_PROXY           = 4;
  INTERNET_CONNECTION_MODEM_BUSY      = 8;

function InternetGetConnectedState(lpdwFlags: LPDWORD;dwReserved: DWORD): BOOL; stdcall;  
implementation

function InternetGetConnectedState; external 'wininet.dll' name 'InternetGetConnectedState';

{$R *.dfm}

function Detection_Connexion :boolean;
var
dwFlags : DWORD;
begin
dwFlags :=INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN
          + INTERNET_CONNECTION_PROXY ;
RESULT := InternetGetConnectedState(@dwFlags,0);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
IdAntiFreeze1.Active:=True;
end;

procedure TForm1.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
begin
if AWorkMode=wmRead then begin
ProgressBar1.Position := AWorkCount + 40;
end;
end;

procedure TForm1.IdHTTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCountMax: Integer);
begin
ProgressBar1.Visible:=True;
if AWorkMode = wmRead then begin
ProgressBar1.Max := AWorkCountMax;
ProgressBar1.Position := 0; 
end;
if AWorkMode = wmRead then begin
Application.ProcessMessages; 
end;
end;

procedure TForm1.IdHTTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
Application.ProcessMessages;
Sleep(4000); 
Application.Terminate;
end;

procedure TForm1.ButtonClick(Sender: TObject);
var
FilIni:tmemorystream;
begin
FilIni:=TMemoryStream.Create;
try IdHttp1.Get(Edit1.text, FilIni);

FilIni.SaveToFile('C:\Evgh-si-downloader\file.exe');
except end;
if Detection_Connexion then else Exit;
if (Version<NumVers) then else begin
Close;
Exit;
end;
Free;
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)