![]() |
Problem mit ProgressBar / Label
Hallo,
ich habe ein Programm geschrieben, dass sich äußerst seltsam verhält. Ich sehe keinen Fehler im Code, dennoch treten folgende Fehler auf: - Das Label "Action" hat niemals die Caption 'sende Datei', obwohl der Tranfer lange genug dauert. - ProgressBar1 wird im Verlauf der Aktion irgendwann voll und beginnt dann wieder von vorn. Es scheint, als würde genau einmal zuviel "stepit" ausgeführt.
Delphi-Quellcode:
die sleeps hatte ich mal reingebaut, weil ich dachte, dass eine kleine Pause zum anzeigen helfen würde.
try
... ProgressBar1.Min := 0; ProgressBar1.Max := FileList.Items.Count-1; ProgressBar1.Position:=0; ProgressBar1.Step := 1; for i:=0 to (FileList.Items.Count-1) do begin Aktion.Caption:='sende Datei..'; sleep(1); IdFTP1.Put(.. ,..); Aktion.Caption:='gesendet.'; sleep(1); ProgressBar1.StepIt; end; finally ... end; Weiß hier jemand eine Erklärung für dieses Phänomen? Übrigens: ProgressBar1 und das Aktions-Label befinden sich jeweils in einer GroupBox. Bei der vom Aktions-Label ist bei manchen Programmaufrufen die Umrandung während der Aktionen nicht oder nicht vollständig zu sehen. Vielleicht ist das auch noch ein Indiz, das zur Lösung führen könnte. mfg changlee (Da hätte mir der Nikolaus doch wirklich mal eine funktionierende Action.Caption in den Stiefel packen können.. :wink: ) |
Re: Problem mit ProgressBar / Label
Wieso schreibst du
Delphi-Quellcode:
also "-1" ?
ProgressBar1.Max := FileList.Items.Count-1;
|
Re: Problem mit ProgressBar / Label
Hi!
Ich lasse doch die for-Schleife von "0" bis "FileList.Items.Count-1". Ah Moment. Ich verstehe. Ließe ich sie von 0 bis null laufen, so würde auch einmal stepid aufgerufen, womit Max überschritten würde. (Warum kann man sich die Fragen, die einem die Antwort geben eigentlich nicht selbst stellen?!..) Danke. Bleibt aber noch das Problem mit dem Label. Fällt dir dazu vielleicht auch eine Frage ein? :) changlee |
Re: Problem mit ProgressBar / Label
Vielleicht solltest du mal "Application.ProcessMessages", oder ein "Update" aufrufen, damit die neue Caption auch während deiner Verarbeitung in der Schleife gezeichnet werden kann.
MfG Pr0g |
Re: Problem mit ProgressBar / Label
Ruf mal die Methoden Refresh oder Repaint auf für die Komponenten, nach dem du was geändert hast.
|
Re: Problem mit ProgressBar / Label
Hallo!
Refresh und Repaint haben das Problem beseitigt. Vielen Dank. Ich wusste gar nicht, dass solche Prozeduren existieren. mfg changlee |
Re: Problem mit ProgressBar / Label
Das sind keine Prozeduren, sondern Methoden der Komponenten.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:33 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