AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Statusbar bei Indy FTP
Thema durchsuchen
Ansicht
Themen-Optionen

Statusbar bei Indy FTP

Ein Thema von freakTAB · begonnen am 3. Apr 2003 · letzter Beitrag vom 28. Nov 2004
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Spasskeks
Spasskeks

Registriert seit: 11. Feb 2004
Ort: Brokstedt
32 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Statusbar bei Indy FTP

  Alt 28. Nov 2004, 22:22
Moin,moin.

War auch grad auf der Suche nach einer Statusanzeige für einen Download... So, ich dachte mir, einfach mal ich probier mal den Quelltext aus, der hier ganz am Anfang gepostet wurde und, tatsache bei mir funzte er zuerst auch net, habe aber den Fehler gefunden!!!

Bei mir war nämlich die Variable AMaxCount = 0. Deshalb ist ja klar, dass die Progressbar nicht weiter läuft... Außerdem habe ich rausgefunden, dass der Wert AWorkCount beim Download die Anzahl der heruntergeladenen Bytes enthält. D.h. wenn man einfach
Code:
Progressbar1.position := AWorkCount
machen würde, wäre die Progressbar nach dem ersten Mal WorkCount ganz am Ende, oder aber immer noch leer Hab des jetzt net ausprobiert... Habe also noch ein wenig dazu geproggt, damit die ProgressBar auch ungefähr das Richtige anzeigt, wäre hier aber auch noch über Verbesserungsvorschläge dankbar!

So, genug der Erklärung hier nun der Quellcode:

Delphi-Quellcode:
procedure TForm1.IdFTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCountMax: Integer);
begin
ProgressBar1.Position := 0;
end;

procedure TForm1.IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
var n : longint;
a : real;
begin
statusbar1.Panels[0].Text := inttostr(AWorkcount div 1000)+' kB';
{size in byte}
n := size div 32768;
{n = 100%}
a := n / 100;
a := round(a);
if a > 1 then
 begin
 inc(b);
 if b >= a then
  begin
  ProgressBar1.Position := AWorkCount div 32768;
  ProgressBar1.Refresh;
  b := 0;
  end;
 end
else
 begin
 ProgressBar1.Position := AWorkCount div 32768;
 ProgressBar1.Refresh;
 end;

end;
Die 32768 ist die Größe des Empfangs-Puffers. Achso was ich auch noch schnell loswerden wollte, habe nicht diese idfreeze- oder wie auch immer Komponente benutzt, klappt auch wunderbar ohne

MFG Henrik
Kleinstmöglicher Aufwand -> Größtmöglicher Gewinn =)
http://www.henrikpfeifer.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 07:32 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