Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi URL_OnDownloadProgress wird nicht ausgeführt (https://www.delphipraxis.net/55535-url_ondownloadprogress-wird-nicht-ausgefuehrt.html)

asdfg 22. Okt 2005 20:24


URL_OnDownloadProgress wird nicht ausgeführt
 
Hi,

mein Problem ist, wenn ich versuche den Code zu kompilieren kommt folgender Fehler:
Zitat:

[Fehler] Unit1.pas(144): Inkompatible Typen: 'Liste der Parameter ist unterschiedlich'
Zeile 144 ist folgendes:
Delphi-Quellcode:
OnDownloadProgress := URL_OnDownloadProgress;
Wenn ich diese Zeile einkommentiere kann man den Code zwar kompilieren, aber URL_OnDownloadProgress wird nicht ausgeführt. So habe ich diese Funktion deklariert:

Zitat:

procedure URL_OnDownloadProgress(Sender: TDownLoadURL;
Progress, ProgressMax: Cardinal;
StatusCode: TURLDownloadStatus;
var Cancel: Boolean);
Delphi-Quellcode:
procedure Tform1.URL_OnDownloadProgress;
begin
  case StatusCode of
    dsFINDINGRESOURCE:
      Label3.Caption := 'Downloadstatus: Datei wurde gefunden...';
    dsCONNECTING:
      Label3.Caption := 'Downloadstatus: Es wird verbunden...';
    dsBEGINDOWNLOADDATA:
      Label3.Caption := 'Downloadstatus: Der Download wird gestartet...';
    dsDOWNLOADINGDATA:
      begin
        ProgressBar.Max:= ProgressMax;
        ProgressBar.Position:= Progress;
        Label3.Caption := 'Downloadstatus: Datei wird heruntergeladen...';
      end;
    dsENDDOWNLOADDATA:
      begin
        Memo2.Lines.Add(get_date() + 'Datei erfolgreich heruntergeladen!');
        ProgressBar.Position := 0;
      end;
  end;
  Application.ProcessMessages;
end;

procedure Tform1.download_file(dl_url,localfile : string);
begin
 with TDownloadURL.Create(nil) do
  try
    URL := dl_url;
    FileName := localfile;
    OnDownloadProgress := URL_OnDownloadProgress;
    ExecuteTarget(nil);
  finally
    Free;
  end;
end;

marabu 22. Okt 2005 22:04

Re: URL_OnDownloadProgress wird nicht ausgeführt
 
Hi.

Wenn du die Komponente in einer ActionList erzeugst, dann kannst du durch einen Doppelklick im Objekt-Inspektor die Ereignisbehandlungsroutine korrekt erzeugen lassen - auch wenn du die Komponente danach wieder entfernst um sie in deinem Programm erst zur Laufzeit zu erzeugen. Die korrekte Signatur für Indy9 wäre:

Delphi-Quellcode:
procedure DownLoadURLDownloadProgress(Sender: TDownLoadURL; Progress,
  ProgressMax: Cardinal; StatusCode: TURLDownloadStatus;
  StatusText: String; var Cancel: Boolean);
Grüße vom marabu

asdfg 22. Okt 2005 22:27

Re: URL_OnDownloadProgress wird nicht ausgeführt
 
Zitat:

Zitat von marabu
Hi.

Wenn du die Komponente in einer ActionList erzeugst, dann kannst du durch einen Doppelklick im Objekt-Inspektor die Ereignisbehandlungsroutine korrekt erzeugen lassen - auch wenn du die Komponente danach wieder entfernst um sie in deinem Programm erst zur Laufzeit zu erzeugen. Die korrekte Signatur für Indy9 wäre:

Delphi-Quellcode:
procedure DownLoadURLDownloadProgress(Sender: TDownLoadURL; Progress,
  ProgressMax: Cardinal; StatusCode: TURLDownloadStatus;
  StatusText: String; var Cancel: Boolean);
Grüße vom marabu

vielen Dank für den Tipp. Deine Deklaration funktioniert super!


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz