![]() |
TProgressbar entsprechende Opendialog Files
Delphi-Quellcode:
Hi. Ich lade per Opendialog x-beliebige Files in eine stringgrid (sender).
...
Progressbar1.Min:=1; Progressbar1.Max:= opendiag.files.count; //Füllen der StringGrid mit Opendialog1Daten sender.RowCount := opendiag.Files.Count+1; edaltsender.text := getcurrentdir; for j:= ProgressBar1.min to ProgressBar1.Max do begin for i:=0 to opendiag.files.count -1 do begin sender.cells[0,1+i]:= ExtractFileName(opendiag.Files[i]); sender.cells[1,1+i]:= Extractfilename(opendiag.Files[i]); sender.cells[2,1+i]:= floattostr(FileSize (opendiag.Files.Strings[i]) div 1024); Progressbar1.Position:=j; end; end; ... ein fortschrittsbalken soll das optisch unterstützen. das problem ist bloß da erst alle dateien in die stringgrid geladen werden, und erst danach der fortschrittsbalken "wächst". gibts eine möglichkeit, nach jeder geöffneten, einzelnen datei, den fortschrittsbalken kontinuierlich zu increasen? mfg danku |
Re: TProgressbar entsprechende Opendialog Files
Setz noch ein "Application.ProcessMessages" in die Schleife.
€dit: In Delphi hamma den Punkt-Operator, net den -> :oops: |
Re: TProgressbar entsprechende Opendialog Files
Was soll die äussere Schleife? :shock: Setz den Max-Wert der Fortschrittanzeige auf die Anzahl der ausgewählten Dateien, die Schrittweite auf eins und erhöhe in der Schleife zum Öffnen der Dateien die Positin der Fortschrittsanzeige um eins:
Delphi-Quellcode:
Progressbar1.Max := opendiag.files.count;
Progressbar1.Step := 1; for i:=0 to opendiag.files.count -1 do begin sender.cells[0,1+i]:= ExtractFileName(opendiag.Files[i]); sender.cells[1,1+i]:= Extractfilename(opendiag.Files[i]); sender.cells[2,1+i]:= floattostr(FileSize (opendiag.Files.Strings[i]) div 1024); Progressbar1.StepIt; Progresbar1.Refresh; end; |
Re: TProgressbar entsprechende Opendialog Files
was war denn so an der äußeren schleife falsch?
|
Re: TProgressbar entsprechende Opendialog Files
Nichts, sie ist einfach nur Sinnlos und sorgt dafür, das dein Counter mehrmals durchläuft, auch wenn schon alles abgearbeitet wird. so macht er bei 6 dateien 36 (6*6) durchläufe und das sollte nicht im sinne des erfinders sein!
|
Re: TProgressbar entsprechende Opendialog Files
Doch sie war nicht nur sinnlos, sondern auch falsch. Wenn du sechs Dateien auswählst, wird die innere Schleife, in der die Dateien geladen werden, sechs mal ausgeführt. Jede Datei wird also sechs mal geladen. Und ich kann mir nicht vorstellen, dass das so sein sollte.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:57 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