Stránka 1 z 1

[delphi] Stahnuti souboru z URL

Napsal: úte 1. kvě 2007, 13:13
od Lord_Lojza
Zdravím, mam VCL aplikaci a potřebuji stahnout soubor z URL a zobrazit jeho aktualni stav stahovani ( souboru bude do velikosti 10MB ). Přikládám následující kod, ktery mi sice soubor stahne, ale obsah formulare se zobrazi az po stahnuti. Muzete nekdo poradit jak na to ? .. dekuji

Kód: Vybrat vše

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, ExtCtrls, ExtActns;

type
  TfrMain = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    ProgressBar1: TProgressBar;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure DoDownload(vURL, vArquivo : String);
  private
  procedure URL_OnDownloadProgress
        (Sender: TDownLoadURL;
         Progress, ProgressMax: Cardinal;
         StatusCode: TURLDownloadStatus;
         StatusText: String; var Cancel: Boolean) ;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frMain: TfrMain;

implementation

{$R *.dfm}

procedure TfrMain.Button1Click(Sender: TObject);
begin
 DoDownload('http://losa.no-ip.info/XXX.exe','C:\Program Files\WifiLINK\Update\WifiLINK.exe')
end;

procedure TfrMain.DoDownload;
begin
   with TDownloadURL.Create(self) do
   try
     URL:= vURL;
     FileName := vArquivo;
     OnDownloadProgress := URL_OnDownloadProgress;
     ExecuteTarget(nil) ;
   finally
     Free;
   end;
end;

procedure TfrMain.URL_OnDownloadProgress;
begin
   ProgressBar1.Max:= ProgressMax;
   ProgressBar1.Position:= Progress;
end;

end.

Napsal: úte 1. kvě 2007, 16:59
od pavel.minarik
zkus sledovat během stahování hodnotu proměnné Progress, zdá se mi, že problém je tam, resp. nikde nevidím, že by se tato proměnná zvyšovala

Napsal: úte 1. kvě 2007, 17:07
od Lord_Lojza
Můžeš teda prosím poradit jak to udělat ?

Napsal: úte 1. kvě 2007, 19:16
od pavel.minarik
dal bych si tam watch list, break point nebo něco a vysledoval, jestli se hodnota proměnné "Progress" vůbec mění