![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
|
Hola!
Entre mis proyectos tengo un editor que me permite escribir programas en ensamblador. Actualmente voy en la versión 3 (aunke más bien es 2.5, pero ya diseñe el entorno con el numero y presentaciones con el #3 )He aki el unit que tengo para poder descargar un archivo de internet. Código:
...
...
...
implementation
uses InfoDownForm;
{$R *.dfm}
procedure TForm1.FormShow(Sender: TObject);
begin
FormInfoDown.ShowModal;
if FileExists(ExtractFileDir(Application.Exename)+'\infoupdates.txt') then
begin
Memo1.Lines.LoadFromFile(ExtractFileDir(Application.Exename)+'\infoupdates.txt');
Label3.Caption:=Memo1.Lines[7] //Aki esta el tamaño del archivo que se descargara,
//para compararlo con el tamaño del que se esta bajando.
end
else
begin
Memo1.Lines[0]:='No existe ninguna información sobre alguna actualización.';
BitBtn1.Enabled:=False;
CheckBox1.Enabled:=False;
end
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Timer1.Enabled:=True;
UrlDownloadToFile(nil, 'http://www.sitio.com/archivo.zip',
PChar(ExtractFileDir(Application.ExeName)+'\archivo.zip'), 0, nil);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
f: file of Byte;
size: Longint;
begin
if fileexists(ExtractFileDir(Application.ExeName)+'\archivo.zip') then
begin
AssignFile(f, ExtractFileDir(Application.ExeName)+'\archivo.zip');
Reset(f);
try
size := FileSize(f);
Label4.Caption:=IntToStr(Size); //Muestra los bytes bajados del archivo
finally
CloseFile(f);
end;
end;
end;
end.
Mi problema es que mientras descargo intento mostrar el avance de la descarga, pero mi Form no se actualiza hasta que la misma descarga ha finalizado. Intento hacerlo tambien con: Código:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
stream: TFilestream;
begin
//Timer1.Enabled:=True;
stream:= TFileStream.Create(ExtractFileDir(Application.ExeName)+'\bnotas.zip',fmCreate);
try
IdHTTP1.Get('http://www.geocities.com/frogsoftx/updates/bnotas.zip',stream);
finally
stream.Free;
end;
//UrlDownloadToFile(nil, 'http://www.geocities.com/frogsoftx/updates/bnotas.zip',
PChar(ExtractFileDir(Application.ExeName)+'\bnotas.zip'), 0, nil);
end;
¿Que alternativa existe para que yo pueda lograr mi objetivo? Me imagino que tendría que meterme a descargar byte por byte 'manualmente' y así poder llevar la cuenta, pero no se como.
__________________
Guía de Estilo. Última edición por madman fecha: 29-06-2003 a las 00:33:56. |
|
|
|