Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Downloadprozess wird in Gauge nicht angezeigt (https://www.delphipraxis.net/168169-downloadprozess-wird-gauge-nicht-angezeigt.html)

Premaider 8. Mai 2012 16:57

Downloadprozess wird in Gauge nicht angezeigt
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hey Leute,
bei meinem Programm habe ich einen
Downloadprozess in einer Gauge nach diesem Prinzip (HIER) eingebaut.
Ich will eigendlich 2 Datein mit Downloadprozessanzeige herunterladen, aber
die zweite habe ich erstmal mit // bei Button1 rausgenommen, da erstmal eine funktionieren sollte.
Die Datein werden heruntergeladen und im richtigen Ordner gespeichert, es wird
aber kein Downloadprozess angezeigt. Wenn ich den zweiten Download aktiviere
kommt eine Fehlermeldung die ca. so aussieht:
"Auf 'status' zugewiesener Wert wird niemals benutzt".
Ich hoffe mal ihr könnt mir helfen :?

Die Projektdatein sind im Anhang.

p80286 8. Mai 2012 17:30

AW: Downloadprozess wird in Gauge nicht angezeigt
 
Ein Blick in die Doku hätte Dir vielleicht weiter geholfen:
Zitat:

Description
Is a control that can be used to graphically display the progress of a process.

TGauge is a lightweight graphic control (see TGraphicControl). It can be used to display in different modes the progress of an action (see TGauge.Kind).


TGauge (kind=gkNeedle)The most representative properties of the gauge are:

The minimum progress value (MinValue).
The maximum progress value (MaxValue).
The current progress value (Progress).
The progress percentage value can be displayed as text in the middle of the gauge (see the property ShowText).

Wenn ich es nicht übersehen habe, dann fehlt da die Initialisierung der Gauge.
Welche Werte erkennst Du denn im Debugger?

Gruß
K-H

Premaider 8. Mai 2012 17:41

AW: Downloadprozess wird in Gauge nicht angezeigt
 
MinValue ist 0
MaxValue ist 100
Progress ist 0

DeddyH 8. Mai 2012 17:46

AW: Downloadprozess wird in Gauge nicht angezeigt
 
Schau Dir die Parameter von MSDN-Library durchsuchenURLDownloadToFile einmal ganz genau an.

Premaider 8. Mai 2012 17:52

AW: Downloadprozess wird in Gauge nicht angezeigt
 
Ich wüsste jetzt nicht was ich dort falsch gemacht haben sollte. Ist doch bei
http://www.delphipraxis.net/47-datei...tsanzeige.html
genau so :?

DeddyH 8. Mai 2012 18:08

AW: Downloadprozess wird in Gauge nicht angezeigt
 
Ist es nicht.
Zitat:

lpfnCB
A pointer to the IBindStatusCallback interface of the caller. By using OnProgress, a caller can receive download status. URLDownloadToFile calls the OnProgress and OnDataAvailable methods as data is received. The download operation can be canceled by returning E_ABORT from any callback. This parameter can be set to NULL if status is not required.
[edit] Das Hervorgehobene hast Du getan, da darfst Du Dich auch nicht wundern, wenn Dein schöner Callback gar nicht zur Anwendung kommt. [/edit]

Premaider 8. Mai 2012 19:02

AW: Downloadprozess wird in Gauge nicht angezeigt
 
Bei mir ist er aber nicht NULL
sondern CDownStatus
cDownStatus := cDownloadStatusCallBack.Create;

Oder bin ich irgendwie auf der völlig falschen Schiene ?
Wenn ja wärs toll wenn ihr mir mal die richtige Lösung sagen könntet.
Komisch. Es hatte ja schonmal funktioniert ?

Luckie 8. Mai 2012 19:43

AW: Downloadprozess wird in Gauge nicht angezeigt
 
Du musst da den Zeiger auf eine Callbackfunktion angeben und kein Objekt, wie du es machst.

Und bitte tu uns allen einen gefallen und poste hier nur den Teil vom Code, um den es geht und häng nicht immer das ganze Projekt an. Die wenigsten haben wohl Lust immer erst das Archiv runteruladen, zu entpacken um sich dann den Code angucken zu können.

Premaider 8. Mai 2012 19:49

AW: Downloadprozess wird in Gauge nicht angezeigt
 
Zitat:

Zitat von Luckie (Beitrag 1165443)
Du musst da den Zeiger auf eine Callbackfunktion angeben und kein Objekt, wie du es machst.

Und bitte tu uns allen einen gefallen und poste hier nur den Teil vom Code, um den es geht und häng nicht immer das ganze Projekt an. Die wenigsten haben wohl Lust immer erst das Archiv runteruladen, zu entpacken um sich dann den Code angucken zu können.

okay mach ich in Zukunft. Dafür nennst du mir jetzt den Zeiger den ich da einsetzen muss, weil ich grad voll auf dem Schlauch stehe :D

Meinst du ich muss jetzt cDownloadStatusCallBack.Create
einsetzen ? Dann funktioniert es aber auch nicht

Luckie 8. Mai 2012 20:32

AW: Downloadprozess wird in Gauge nicht angezeigt
 
Du schreibst eine Funktion und als Parameter übergibst du einen Zeiger auf die Funktion.

Premaider 8. Mai 2012 20:37

AW: Downloadprozess wird in Gauge nicht angezeigt
 
Zitat:

Zitat von Luckie (Beitrag 1165451)
Du schreibst eine Funktion und als Parameter übergibst du einen Zeiger auf die Funktion.

Sorry, ich bin noch ein ziemlicher Anfänger.
Ist der Zeiger z.b. bei
Form1.Caption:='Beispiel'
Form1 ?
Ich habe schonmal nachgeschaut. Da müsste doch irgendetwas mit OnProgress oder so hin :?

Luckie 8. Mai 2012 20:38

AW: Downloadprozess wird in Gauge nicht angezeigt
 
Forensuche: http://www.delphipraxis.net/dp_searc...ch_matchmode=0

Premaider 8. Mai 2012 21:04

AW: Downloadprozess wird in Gauge nicht angezeigt
 
Sorry. Die suchte enttäuscht mich. Entwerder wird wieder auf http://www.delphipraxis.net/47-datei...tsanzeige.html
verwiesen. Was ja funktionieren sollte, bei mir genauso ist, aber nicht funktioniert.
Oder es hat kaum etwas mit meinem Problem zu tun :(
Es muss ja etwas vom Typ IBindStatusCallback nur davon habe ich noch nie etwas gehört :(

Luckie 8. Mai 2012 21:15

AW: Downloadprozess wird in Gauge nicht angezeigt
 
Kommando zurück. Es wird ein A pointer to the IBindStatusCallback interface of the caller erwartet. Du musst also das Interface implementieren.

Aber warum machst du es nicht mit einer HTPP Komponente? Ist viel einfacher.

Premaider 8. Mai 2012 21:20

AW: Downloadprozess wird in Gauge nicht angezeigt
 
Hast du da einen Link zu einem Beispiel oder Tutorial ? Das wäre sehr nett ;D

Luckie 8. Mai 2012 21:45

AW: Downloadprozess wird in Gauge nicht angezeigt
 
Zeig doch mal etwas Eigeninitiative. Ein Tutorial sollte sich recht schnell mit der Forensuche oder Google finden lassen.

Premaider 8. Mai 2012 22:33

AW: Downloadprozess wird in Gauge nicht angezeigt
 
Hab ich ja schon ich finde aber nichts. Hast du ein paar Suchvorschläge ?

Luckie 8. Mai 2012 22:36

AW: Downloadprozess wird in Gauge nicht angezeigt
 
Suchbegriffe: Delphi http. Und da mit findest du nichts?

Premaider 8. Mai 2012 22:44

AW: Downloadprozess wird in Gauge nicht angezeigt
 
Jetzt habe ich etwas mit einer ProgessBar und http gefunden. Da mir diese sogar noch lieber ist werde ich es damit morgen probieren. Falls dies nicht klappen sollte melde ich mich hier noch mal. Danke dir ;D

DeddyH 9. Mai 2012 07:00

AW: Downloadprozess wird in Gauge nicht angezeigt
 
Es hätte ja auch genügt, den selbst verlinkten Code exakt zu kopieren.
Zitat:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  cDownStatus : cDownloadStatusCallback;
  status: integer;
begin
  cDownStatus := cDownloadStatusCallBack.Create;
 
   status := URLDownloadToFIle(nil,'http://www.google.de/index.html',
     'C:\index.html',0,CDownStatus); //<-- CDownStatus statt nil
    cDownStatus.Free;

   if (status <> 0) then
      Form1.Label1.Caption:='Es gab einen Fehler beim Herunterladen!';
end;



Alle Zeitangaben in WEZ +1. Es ist jetzt 17:25 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