![]() |
Re: CopyFileEx
Zitat:
Delphi-Quellcode:
// wParam: lopart, lParam: hipart
|
Re: CopyFileEx
Die Formel von Luckie ist allerdings nicht richtig, er addiert einfach beide Teile. Der richtige Wert errechnet sich so:
Delphi-Quellcode:
bytes ist natürlich als Int64 zu deklarieren.
bytes := (Int64(Msg.LParam) shl 32) + Msg.WParam;
Gruß Hawkeye |
Re: CopyFileEx
Dann mußt du halt noch einen Divisor mit einbauen, welche die Werte vor der Übergabe an die ProgressBar anpaßt diesen kannst du ja setzen, sobald du die Dateigröße bekommst, also in CEXM_MAXBYTES.
Etwa so:
Delphi-Quellcode:
CEXM_MAXBYTES:
begin if Int64(Msg.WParam) shl 32 + Msg.LParam <= $7FFFFFFF then Divisor := 1 else Divisor := (Int64(Msg.WParam) shl 32 + Msg.LParam) div $7FFFFFFF; ProgressBar1.Max := Msg.WParam + Msg.LParam;
Delphi-Quellcode:
(Int64(Msg.WParam) shl 32 + Msg.LParam) div Divisor
PS: Lackie, muß in WndProc nicht
Delphi-Quellcode:
so sein?
Msg.WParam + Msg.LParam
Delphi-Quellcode:
Mist zu langsam -.-''
Int64(Msg.WParam) shl 32 + Msg.LParam
|
Re: CopyFileEx
Zitat:
|
Re: CopyFileEx
danke nochmal für die antworten ... ich habs jetz einfach in prozent umgerechnet
jetz hab ich dadurch eine ordenliche progressbar |
Re: CopyFileEx
Zitat:
|
Re: CopyFileEx
Tipps noch mal richtig, dann kopiere ich das in meinen Code-Schnippsel rein. ;)
|
Re: CopyFileEx
Das Problem ist: Die Progressbar kommt nur mit Integer klar und nicht mit Int64. Will man eine Progressbar benutzen muss man sowieso in Prozent umrechnen. Ich habe den Code auf meiner Homepage korrigiert:
![]() |
Re: CopyFileEx
Zitat:
Nein, in Prozent muß es nicht sein ... der Wert muß halt "nur" in den Integer-Bereich gebracht (verkleinert) werden, aber Prozent geht och ... is ja auch im entsprechendem Bereich. Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:52 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