Fortschritt in einer ProgressBar?
Moin Leute!
Ich hab ein kleines Problemchen und ich hoffe, dass mir wer helfen kann. Ich hab eine function geschrieben, die eine Datei in ein anderes Verzeichnis kopiert und während sie das tut, möchte ich, dass auf einer ProgressBar zu sehen ist, wie weit der Vorgang fortgeschritten ist (z.B anhand der aktuellen Größe). Wie bekomme ich es hin, dass die Progressbar sich aktualisiert? Vielen Dank schon mal für eure Tipps! |
Re: Fortschritt in einer ProgressBar?
Hallo,
ändere die Eigenschaft 'Position' von der Progressbar. Das sollte funktionieren. Check this out. DANNYBOY |
Re: Fortschritt in einer ProgressBar?
Hai blubb85,
ersteinmal: "Herzlich Willkommen in der Delphi-PRAXIS". Wie sieht denn deine Funktion zum kopieren der Datei aus? Ohne diese Info ist es scher etwas zu sagen. |
Re: Fortschritt in einer ProgressBar?
Oder nutze shfileoperation und lass alles von Windows machen. Solltets du mit Streams arbeiten könnte dir auch der StreamPrgressAdapter von meiner Seite helfen: http://www.luckie-online.de/Downloads/DelphiUnits/
|
Re: Fortschritt in einer ProgressBar?
Moin ihr.
Vielen dank für eure Tipps! Mein Problem liegt eher dadrin, dass ich zwei Sachen nebeneinander haben möchte: Das kopieren und den Fortschritt in der ProgrssBar. Aber hier mal der Quelltext:
Code:
Ich wäre sehr dankbar, wenn ihr mir helfen könntet!
procedure TForm1.Button1Click(Sender: TObject);
begin pfad2:=pchar(label7.Caption); pfad1:=pchar(label5.caption); if checkbox1.Checked=true then copyfile(pfad2,backup,false); deletefile(pfad2); [b]Copyfile(pfad1,pfad2,false); size:=(getfilesize(pfad1) div getfilesize(pfad2))*100; progressbar1.Position:=size;[/b] if getfilesize(pfad2)=getfilesize(pfad1)then with application do MessageBox('Kopiervorgang war erfolgreich','Kopieren beendet', MB_OK); progressbar1.Position:=0; end; [edit=sakura] [pre]-Tags. Gewöhne Dir mal ein sauberes Spacing an! Mfg, sakura[/edit] |
Re: Fortschritt in einer ProgressBar?
Du könntest ja einen Timer benutzten, der die Größe auf der Festplatte in regelmäßigen Abständen mit der Gesamtgröße vergleicht? Und mit Progressbar1.Position:= aktueller Größe / gesamtgröße * 100;
arbeiten. Gruß DelphiFreund |
Re: Fortschritt in einer ProgressBar?
Nutze SHFileOperation, wie Luckie schrieb. Das kann löschen, kopieren und verschieben. Das, was auch der Explorer kann. Fortschrittsanzeige inkl. Na ja, eigentlich ist es nur der Explorer-Dialog. Warum mit anderen Dingen, wie Timern, hantieren?
|
Re: Fortschritt in einer ProgressBar?
Da copyfile erst wieder zurückkehrt, wenn die Datei fertig kopiert wurde, wirst du damit keine Fortschrittsanzeige realisieren können. Wenn dann geht so wa snur mit CopyFileEx.
|
Re: Fortschritt in einer ProgressBar?
Vielen Dank für eure Tipps!
Ich hoffe, dass ich das in den nächsten Tagen hinbekomme. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:03 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