Fórum Download em Delphi #221275
21/03/2004
0
É possível mostrar informações como Total do Arquivo, Total Copiado e Tempo Restante?
Fmd
Curtir tópico
+ 0Posts
21/03/2004
Chico Gois
Gostei + 0
21/03/2004
Fmd
Gostei + 0
21/03/2004
Lipsil
ti acha aí nesse cód ;)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, DropTarget, DropSource, DropURLTarget,
Buttons, Gauges,httpreader,filectrl, Spin,fmxutils;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
BitBtn1: TBitBtn;
SpeedButton1: TSpeedButton;
Label3: TLabel;
Status: TLabel;
Gauge1: TGauge;
Label4: TLabel;
percent: TLabel;
Label5: TLabel;
Copy: TLabel;
Label7: TLabel;
Total: TLabel;
SpeedButton2: TSpeedButton;
Label6: TLabel;
Label8: TLabel;
Timer1: TTimer;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
procedure Button1Click(Sender: TObject);
procedure HttpProgress(Sender: TObject; const TotalSize,
Readed: Integer; const FileName: String);
procedure BitBtn1Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure HttpError(Sender: TObject);
procedure HttpCopired(Sender: TObject; const FileSize: Integer;
const FileName: String);
procedure DropURLTarget1Drop(Sender: TObject; ShiftState: TShiftState;
Point: TPoint; var Effect: Integer);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure DropFileTarget1Drop(Sender: TObject; ShiftState: TShiftState;
Point: TPoint; var Effect: Integer);
procedure SpeedButton2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
eltime,remtime,lastcopyed,lastprocent : integer;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
dir : string;
begin
dir := ´´;
SelectDirectory(´Selecteer map´, ´´ ,dir);
if dir <> ´´ then edit2.text := dir;
end;
procedure TForm1.HttpProgress(Sender: TObject; const TotalSize,
Readed: Integer; const FileName: String);
begin
try
status.caption := ´Copiando...´;
timer1.enabled := true;
gauge1.Maxvalue := TotalSize;
gauge1.progress := Readed ;
copy.caption := inttostr(readed div 1024)+´Kb´;
total.caption := inttostr(TotalSize div 1024)+´Kb´;
percent.Caption := formatfloat(´#." ¬"´, (readed / totalsize)*100);
application.title := percent.Caption + ´ - Download´;
except
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
edit1.text := ´´;
edit1.PasteFromClipboard;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
remtime := 0;
eltime := 0;
http.URL := edit1.text;
http.LocalPath := edit2.text;
status.Caption := ´Conectando...´;
gauge1.progress := 0;
Http.Execute;
end;
procedure TForm1.HttpError(Sender: TObject);
begin
status.Caption := ´Erro! Parado. Lendo.´;
end;
procedure TForm1.HttpCopired(Sender: TObject; const FileSize: Integer;
const FileName: String);
begin
status.caption := ´Pronto.´;
timer1.enabled := false;
end;
procedure TForm1.DropURLTarget1Drop(Sender: TObject;
ShiftState: TShiftState; Point: TPoint; var Effect: Integer);
begin
edit1.text := DropURLTarget1.URL;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DropURLTarget1.Register(edit1);
DropFileTarget1.Register(form1);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
DropURLTarget1.Unregister;
DropFileTarget1.Unregister;
end;
procedure TForm1.DropFileTarget1Drop(Sender: TObject;
ShiftState: TShiftState; Point: TPoint; var Effect: Integer);
begin
edit1.text := dropfiletarget1.files.strings[0];
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
http.Free;
http := Thttpreader.Create(form1);
timer1.enabled := false;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
i,g : integer;
begin
try
label12.caption := inttostr((gauge1.progress - lastcopyed) {div 1024}) + ´ bytes´;
eltime := eltime + 1;
label8.caption := ´´;
/// minuto
if eltime div 60 < 10 then label8.caption := ´0´;
label8.caption := label8.caption + inttostr(eltime div 60) + ´:´;
/// Segundo
if eltime mod 60 < 10 then label8.caption := label8.caption + ´0´;
label8.caption := label8.caption + inttostr(eltime mod 60) ;
////
{verschil met vorige seconde}
i := gauge1.progress - lastcopyed;
{restende eenheden}
g := gauge1.MaxValue - gauge1.Progress;
g := g div i;
label10.caption := ´´;
if g div 60 < 10 then label10.caption := ´0´;
label10.caption := label10.caption + inttostr(g div 60);
if g mod 60 < 10 then label10.caption := label10.caption + ´:0´ else label10.caption := label10.caption + ´:´;
label10.caption := label10.caption + inttostr(g mod 60);
////
except
end;
lastcopyed := gauge1.progress;
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
if messagedlg(´Para ?´,mtconfirmation,[mbYes,mbNo],0) = mrYes then exit;
http.destroy;
http := Thttpreader.Create(form1);
timer1.enabled := false;
end;
copyfile(str,str1);
executefile(extractfilename(str1),´´,extractfiledir(str1),1);
end;
procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
showmessage(´HTTP DOWNLOADER´+1013+´Freeware´+10131013+´Copyright 1998 - 1999´+1013+´by PadC´+1013+´louis.jansen@skynet.be´);
end;
end.Valew
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)