AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fortschrittsanzeige in ProgressBar

Ein Thema von Delphi_Atze · begonnen am 13. Mai 2009 · letzter Beitrag vom 3. Mai 2010
Antwort Antwort
Seite 1 von 2  1 2      
Delphi_Atze
(Gast)

n/a Beiträge
 
#1

Fortschrittsanzeige in ProgressBar

  Alt 13. Mai 2009, 21:01
Hallo

Ich habe folgendes Problem:

Ich lade eine txt Datei mit Hilfe der Indy Komponente (in Delphi 2009) herunter. Jetzt will ich diesen Fortschritt des Herunderladens in einer ProgressBar anzeigen lassen, Ich habe eine schöne Anleitung gefunden:

-> http://www.delphi-treff.de/tutorials...t/indy/page/4/

Habe soweit alles gemacht wie beschrieben:

Varibalen (Global)

Delphi-Quellcode:
var
  Form1: TForm1;
  IdFTP1:TidFTP;
  STime:TDateTime;
  AverageSpeed:Extended;

Das ist das Ereignis der OnWork (der IdFTP1)

Delphi-Quellcode:
procedure TForm1.IdFTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Int64);
var
  S: string;
  TotalTime: TDateTime;
  H, M, Sec, MS: Word;
  DLTime: Double;
begin
  //Errechnen der Transfergeschwindigkeit:
  TotalTime := Now - STime;
  DecodeTime(TotalTime, H, M, Sec, MS);
  Sec := Sec + M * 60 + H * 3600;
  DLTime := Sec + MS / 1000;
  if DLTime > 0 then
    AverageSpeed := (AWorkCount / 1024) / DLTime;
  S := FormatFloat('0.00 KB/s', AverageSpeed);
  case AWorkMode of
    wmRead: StatusBar1.Panels[1].Text := 'Download speed ' + S;
    wmWrite: StatusBar1.Panels[1].Text := 'Uploade speed ' + S;
  end;

  //Aktualisieren der Fortschrittsanzeige:
  ProgressBar1.Position := AWorkCount;
end;
Das ist die OnWorkBegin (der IdFTP1)

Delphi-Quellcode:
procedure TForm1.IdFTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
 AWorkCountMax: Int64);
begin
  ProgressBar1.Max := AWorkCountMax;
  ProgressBar1.Position := 0;
  STime:=now;
end;

Ich hatte Probleme das "AverageSpeed" einen Typ zuzuweisen. habe es schließlich auf Extended gesetzt (hatte ich gelesen gehabt war mir aber auch nicht sicher ob das geht). Wenn ich jetzt den Button klicke, der die txt dei runterladen soll, passiert nichts

der Button macht folgendes:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin

  IdFTP1:=TIdftp.Create(Self);
  IdFTP1.Username := 'XXX';
  IdFTP1.Password := 'XXX';
  IdFTP1.Port := 21;
  IdFTP1.Host := 'XXX';
  IdFTP1.Connect;
  IdFTP1.Get('marsas.txt', 'C:\WINDOWS\marsas.txt' , true, false);
  IdFTP1.Quit;

end;

Jetzt will ich den Button drücken und die ProgressBar soll halt abhängig von der Dateigröße den Fortschritt anzeigen.

Wäre über jede Hilfe sehr Dankbar
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Fortschrittsanzeige in ProgressBar

  Alt 13. Mai 2009, 21:05
Hast du überhaupt Schreibrechte im Windowsverzeichnis, also kann die datei überhaupt erstellt werden? sind die Ereignisse der Komponente zugeordnet? Hast du den Code schon nmal debuggt? Springt er überhaupt in das Ereignis rein? Wie groß ist die Textdatei?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#3

Re: Fortschrittsanzeige in ProgressBar

  Alt 13. Mai 2009, 21:06
Außerdem: AWorkCountMax kann 0 sein
  Mit Zitat antworten Zitat
Delphi_Atze
(Gast)

n/a Beiträge
 
#4

Re: Fortschrittsanzeige in ProgressBar

  Alt 13. Mai 2009, 21:18
-> Die datei schreibt er, das klappt alles, kann sie auch ändern
-> Über die Ereigniszuordnung habe ich mal was gelesen, weiß aber nicht wie das geht.
-> Datei ist 4,00kb groß, könnte Sie zum Testen größer machen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Fortschrittsanzeige in ProgressBar

  Alt 13. Mai 2009, 21:21
Zitat von Delphi_Atze:
-> Über die Ereigniszuordnung habe ich mal was gelesen, weiß aber nicht wie das geht.
wie hast du denn die Ereignisse rstellt? sind sie im OI bei der Komponente eingetragen?
Zitat:
-> Datei ist 4,00kb groß, könnte Sie zum Testen größer machen
[/quote]
Wäre wohl sinnvoll.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Delphi_Atze
(Gast)

n/a Beiträge
 
#6

Re: Fortschrittsanzeige in ProgressBar

  Alt 13. Mai 2009, 21:24
Hier habe ich das erstellt:

http://www.ulodric.de/files/6211231004.jpg

Habe doppel neben das frei Feld jeweils geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Fortschrittsanzeige in ProgressBar

  Alt 13. Mai 2009, 21:40
Ja und was passiert jetzt mit größeren dateien? Hast du das Ereigniss mal debuggt?

Es ist irgendwie ziemlich kontraprdoktiv, wenn man dir alles aus der Nase ziehen muss.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Delphi_Atze
(Gast)

n/a Beiträge
 
#8

Re: Fortschrittsanzeige in ProgressBar

  Alt 13. Mai 2009, 21:49
ALso programm habe ich gestartet, aber es werden keine Fehler angezeigt.
datei ist jetzt etwas über 1mb was man jetzt schon shene müsste beim hochladen.
  Mit Zitat antworten Zitat
Delphi_Atze
(Gast)

n/a Beiträge
 
#9

Re: Fortschrittsanzeige in ProgressBar

  Alt 13. Mai 2009, 21:56
man sieht aber nichts
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Fortschrittsanzeige in ProgressBar

  Alt 13. Mai 2009, 22:18
Du sollst es nicht nur einfach starten. Du sollst den Code der Ereignissprozedur debuggen! Setz da mal einen Haltepunkt und dann guck mal weiter mit F7 und guck dir die Werte der Variablen an.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:41 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