Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Fortschritt in einer ProgressBar? (https://www.delphipraxis.net/27249-fortschritt-einer-progressbar.html)

blubb85 6. Aug 2004 13:07


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!

Dannyboy 6. Aug 2004 13:10

Re: Fortschritt in einer ProgressBar?
 
Hallo,
ändere die Eigenschaft 'Position' von der Progressbar. Das sollte
funktionieren.
Check this out.
DANNYBOY

Sharky 6. Aug 2004 13:11

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.

Luckie 6. Aug 2004 13:12

Re: Fortschritt in einer ProgressBar?
 
Oder nutze shfileoperationshfileoperation 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/

blubb85 6. Aug 2004 16:29

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:
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;
Ich wäre sehr dankbar, wenn ihr mir helfen könntet!

[edit=sakura] [pre]-Tags. Gewöhne Dir mal ein sauberes Spacing an! Mfg, sakura[/edit]

DelphiFreund 6. Aug 2004 16:45

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

MathiasSimmack 6. Aug 2004 17:59

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?

Luckie 7. Aug 2004 13:36

Re: Fortschritt in einer ProgressBar?
 
Da MSDN-Library durchsuchencopyfile 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 MSDN-Library durchsuchenCopyFileEx.

blubb85 8. Aug 2004 11:21

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