Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Fehlerhafte Progress anzeige (https://www.delphipraxis.net/110927-fehlerhafte-progress-anzeige.html)

XXcD 26. Mär 2008 22:26


Fehlerhafte Progress anzeige
 
Hallo,
ich lade per Tidhttp Komponente Dateien aus dem Internet,
den Fortschritt lass ich mir mit einer Progressbar anzeigen.
Bei ca. 20 MB springt die Prgressbar einfach auf 0 und fängt erst bei den letzten MB von vorne an.
Ich nutze die TAdvProgressBar und folgenden code:

Delphi-Quellcode:
procedure TForm6.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Integer);
begin
Progress.Position := AWorkCount*100 div IdHTTP1.Response.ContentStream.Size;
application.ProcessMessages;
end;
Vielleicht ist dieser fehler ja schon bekannt und mir kann einer weiterhelfen.

MrKnogge 26. Mär 2008 22:31

Re: Fehlerhafte Progress anzeige
 
Setzt du auch den Maxwert deiner Progressbar ?

Hast du es mal mit der TProgressbar probiert ?

XXcD 26. Mär 2008 22:34

Re: Fehlerhafte Progress anzeige
 
Ahh da kam mir jetzt die Idee, ich versuche es mal folgendermaßen:

Delphi-Quellcode:
procedure TForm6.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Integer);
begin
Progress.Position := AWorkCount;
application.ProcessMessages;
end;



procedure TForm6.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Integer);
begin
Progress.Max:=IdHTTP1.Response.ContentStream.Size;
end;
Da hätte ich auch direkt drauf kommn können.

Die Muhkuh 26. Mär 2008 22:36

Re: Fehlerhafte Progress anzeige
 
Hi,

Delphi-Quellcode:
procedure TForm6.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Integer);
begin
Progress.Max:=AWorkCountMax;
end;
Kannst hier auch "AWorkCountMax" benutzen ;)

XXcD 26. Mär 2008 22:42

Re: Fehlerhafte Progress anzeige
 
Ich habe es gerade ausprobiert, funktioniert einwandfrei :) . Da habt ihr mich mal wieder auf den richtigen Weg gebracht, ihr seid echt die besten.

Deltachaos 29. Mär 2008 21:51

Re: Fehlerhafte Progress anzeige
 
Ich weis net ob ich zu blöd dafür bin aber ich wolt das ausprobiren und es kommt die meldung:

[Fehler] Unit1.pas(43): Undefinierter Bezeichner: 'IdHTTP1Work'

Delphi-Quellcode:
procedure TForm1.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Integer);
begin
Progress.Max:=AWorkCountMax;
Progress.Position := AWorkCount;
end;

Die Muhkuh 29. Mär 2008 21:54

Re: Fehlerhafte Progress anzeige
 
Hast Du eine Komponente vom Typ TIdHTTP auf der Form? Hast Du dieser das Event zugewiesen?

mkinzler 29. Mär 2008 21:54

Re: Fehlerhafte Progress anzeige
 
Hattest du nicht das selbe Problem in einem anderen Thread?

Deltachaos 29. Mär 2008 21:55

Re: Fehlerhafte Progress anzeige
 
Zitat:

Zitat von Die Muhkuh
Hast Du eine Komponente vom Typ TIdHTTP auf der Form? Hast Du dieser das Event zugewiesen?

Ok die komponente hab ich natürlisch drauf. wie weise ich ihr ein Event zu?

Die Muhkuh 29. Mär 2008 21:55

Re: Fehlerhafte Progress anzeige
 
Doppelklick im OI auf das entsprechende Ereignis.

Deltachaos 29. Mär 2008 21:58

Re: Fehlerhafte Progress anzeige
 
Zitat:

Zitat von Die Muhkuh
Doppelklick im OI auf das entsprechende Ereignis.

was ist das OI? Objektinspektor?

mkinzler 29. Mär 2008 21:59

Re: Fehlerhafte Progress anzeige
 
Fahr mal mit der Maus drüber? :zwinker:

Deltachaos 29. Mär 2008 22:02

Re: Fehlerhafte Progress anzeige
 
Zitat:

Zitat von mkinzler
Fahr mal mit der Maus drüber? :zwinker:

Ich glaub ich bin von selbst datuf gekommen aber
Ich weis net wo ich da des Ereignis finde

Ok ich hab das ereigniss im OI gefunden. was mus ich da reinscheiben?

Aha Erlebnis. hatt sich erledigt

mkinzler 29. Mär 2008 22:04

Re: Fehlerhafte Progress anzeige
 
Auf Ereignisse wechseln und dann bei onWork

einfach Doppelklick, dann legt die IDE die Methode an und verbindet diese mit dem Event.

Die Muhkuh 29. Mär 2008 22:04

Re: Fehlerhafte Progress anzeige
 
Den Code? :roll:

[edit] Zu Langsam, Markus, das hat er schon :tongue: [/edit]

Deltachaos 29. Mär 2008 22:07

Re: Fehlerhafte Progress anzeige
 
Zitat:

Zitat von Die Muhkuh
Den Code? :roll:

[edit] Zu Langsam, Markus, das hat er schon :tongue: [/edit]

ok ich hab die gantze zeit auf die Graue Stelle geklikt

jetzt hab ich folgendes Problem:

Delphi-Quellcode:
[Fehler] Unit1.pas(46): Deklaration von 'IdHTTP1Work' unterscheidet sich von vorheriger Deklaration
Delphi-Quellcode:
procedure TForm1.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Integer);
begin
Progress.Max:=AWorkCountMax;
Progress.Position := AWorkCount;
end;

Die Muhkuh 29. Mär 2008 22:09

Re: Fehlerhafte Progress anzeige
 
Jetzt musst halt mal schauen, was sich unterscheid. Einfach den Code reinposten und wir sollen mal machen, ist nicht...

Und was für eine graue Stelle?

Deltachaos 29. Mär 2008 22:14

Re: Fehlerhafte Progress anzeige
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Die Muhkuh
Jetzt musst halt mal schauen, was sich unterscheid. Einfach den Code reinposten und wir sollen mal machen, ist nicht...

Und was für eine graue Stelle?

Diese graue stelle:

http://www.delphipraxis.net/download.php?id=32433

Die Muhkuh 29. Mär 2008 22:17

Re: Fehlerhafte Progress anzeige
 
Hast Du die komplette Prozedur drüber kopiert?

Ich kenne jetzt Indy 10 nicht, vielleicht hat sich die Definition geändert.

Übernimm mal nur den Code zwischen begin und end.

mkinzler 29. Mär 2008 22:18

Re: Fehlerhafte Progress anzeige
 
Und wie ist die Methode im Interface deklariert?

Deltachaos 29. Mär 2008 22:19

Re: Fehlerhafte Progress anzeige
 
Zitat:

Zitat von Die Muhkuh
Hast Du die komplette Prozedur drüber kopiert?

Ich kenne jetzt Indy 10 nicht, vielleicht hat sich die Definition geändert.

Übernimm mal nur den Code zwischen begin und end.

ich benutz Indy 9. und ich hab die drüber kopiert.

und was soll ich etz machen hää?

Deltachaos 29. Mär 2008 22:20

Re: Fehlerhafte Progress anzeige
 
Zitat:

Zitat von mkinzler
Und wie ist die Methode im Interface deklariert?

Was ist das interface?

Die Muhkuh 29. Mär 2008 22:21

Re: Fehlerhafte Progress anzeige
 
Sicher, dass Du Indy 9 benutzt? Ich hab diese mit ganzen anderen Komponentensymbolen im Kopf.

Und der Code zwischen Begin und end ist:

Delphi-Quellcode:
Progress.Max:=AWorkCountMax;
Progress.Position := AWorkCount;
D.h. doppelklick auf die graue Stelle und dann den Code reinkopieren.

Danach empfehle ich Dir, Grundlagen-Tutorials durchzuarbeiten...

Deltachaos 29. Mär 2008 22:26

Re: Fehlerhafte Progress anzeige
 
Zitat:

Zitat von Die Muhkuh
Sicher, dass Du Indy 9 benutzt? Ich hab diese mit ganzen anderen Komponentensymbolen im Kopf.

Und der Code zwischen Begin und end ist:

Delphi-Quellcode:
Progress.Max:=AWorkCountMax;
Progress.Position := AWorkCount;
D.h. doppelklick auf die graue Stelle und dann den Code reinkopieren.

Danach empfehle ich Dir, Grundlagen-Tutorials durchzuarbeiten...

auf jedenfall hab ich indy 9 istaliert

wen ich auf die graue klicke passirt nischt wen ich auf die weise klicke dan komm ich zu der stelle an der der code steht.

Die Muhkuh 29. Mär 2008 22:28

Re: Fehlerhafte Progress anzeige
 
Och mensch... Muss man alles perfekt beschreiben?

Code rauslöschen -> Speichern, damit die Zuweisung entfernt wird. -> Doppelklick auf die Stelle und Code rein.

Arbeite lieber erst mal ein paar Grundlagen-Tutorials auf dsdt.info durch...

Deltachaos 30. Mär 2008 11:35

Re: Fehlerhafte Progress anzeige
 
Zitat:

Zitat von Die Muhkuh
Och mensch... Muss man alles perfekt beschreiben?

Code rauslöschen -> Speichern, damit die Zuweisung entfernt wird. -> Doppelklick auf die Stelle und Code rein.

Arbeite lieber erst mal ein paar Grundlagen-Tutorials auf dsdt.info durch...

Okay hab ich ja auch so gemacht gehabt.

[Fehler] Unit1.pas(46): Deklaration von 'IdHTTP1Work' unterscheidet sich von vorheriger Deklaration

Delphi-Quellcode:
procedure TForm1.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
          AWorkCount: Integer);
begin
Progress.Max:=AWorkCountMax;
Progress.Position := AWorkCount;
end;
kann das sein das AWorkCount: Integer nicht zu dehnen davor past?
baer durch ein ';' getrennt sind sie doch alle.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 Uhr.

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