![]() |
Re: Statusbar bei Indy FTP
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:
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... :wink: 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!
Progressbar1.position := AWorkCount
So, genug der Erklärung hier nun der Quellcode:
Delphi-Quellcode:
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 :wink:
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; MFG Henrik :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:15 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 by Thomas Breitkreuz