nu virker det i hvert fald. Jeg ved ikke hvor effektiv dette her er i forhold til CopyFile. Men for at du skal kunne lave en progress, er du jo nødt til at få en eller anden status undervejs, om hvor mange bytes der er kopieret, og det giver CopyFile ikke. :(
Det var da voldsom at lave en tråd, du skal bare lave en Refresh på din ProgressBar eller en Application.ProssesMessages så opdatere den fint, problemmet er at disk assec tager alt windows tiden så der ikke er tid til skræmopdat.
okay men nu er jeg ikke helt så meget inden i delphi, men det virker så er jeg glad, men hvis det kan laves letter og på en bredre måde ville det da være dejligt at vide hvordan...
ProgressBar1.Position := Source.Size div TotalRead * ProgressBar1.Max; Application.ProssesMessages; // Denne nye line er nok !!!!!! until BytesRead < BLOCKSIZE; finally Source.Free; Dest.Free; end;
for øvrigt er det vel okay at lave en tråd. Hvis det er en meget stor fil du kopiere, og det ikke er trådet blokerer programmet jo indtil filen er kopieret
Det må være en fejl i progressbar\'en, for den burde sende en repaint når du ændre position, og prossesmessages tømmer messageskøen så det burde virker, måske skal du prøve at ProgressBar1.Refresh inden ProssesMessages, men du har da ret i at hvis det er en stor fil \"hænger\" programmet, bortset fra at du netup ved at bruge prosessMessages giver windows \"lov\" til at behandle sine messages.
/Martin
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.