Ĺadny brzuch
Wiem ze do kopiowania sluzy funkcja
copyfile(co , gdzie, true);
Ale jak zrobic by byl widoczny postep ??
Zaluzmy ze procent bedzie w zmiennej "proc" Jak zrobic reszte :lol::?
------------------------
gg: 4309144
icq: 261312711
aqq: 34365
mail: mifczu@boo.pl
web: www.mifczu@boo.pl
Skorzystaj z komponentu TGauge, możesz zrobić coś takiego, wczytujesz rozmiar pliku i zapisujesz go w pamięci i np. co sekundę komponent TTimer sprawdzasz ile już jest danego pliku skopiowanego na dysku i robisz proste obliczenie dane przesyłasz do komponentu TGauge, a on wyświetla ilość procencików ;).
P.S. To było w którymś z numerów eksperta jak był robiony na jego łamach EKspert Commander (chyba 4/03, ale mógł to być również 3/03, 2/03 jak i 1/03) ;).
// My Web // My GG // My E-Mail //
[code]
procedure TMain.CopyClick(Sender: TObject);
const
SrcPath = 'C:flash.rar';
DstPath = 'C:flash-kopia.rar';
var
Src, Dst : file;
FSize : Integer;
RealSize : Integer;
Buffer: array[0..1024] of char;
TotalSize : Integer;
begin
TotalSize := 0;
AssignFile(Src, SrcPath);
try
Reset(Src, 1); // otwieramy plik źródłowy
AssignFile(Dst, DstPath);
try
ReWrite(Dst, 1); // tworzymy nowy plik
FSize := FileSize(Src); // określamy rozmiar pliku źródłowego
Progress.Max := FSize;
{ pętla odczytuje określone porcje danych a następnie te porcje
zapisuje do nowego pliku }
repeat
// odczytaj 1 kB danych
BlockRead(Src, Buffer, SizeOf(Buffer), RealSize);
if RealSize > 0 then // jeżeli odczytany rozmiar jest większy od zera...
begin
{ dodaj do zmiennej TotalSize }
TotalSize := TotalSize + RealSize;
{ zapisz odczytaną porcję danych do pliku przeznaczenia }
BlockWrite(Dst, Buffer, RealSize);
Progress.Position := TotalSize;
end;
until RealSize = 0;
finally
CloseFile(Dst);
end;
finally
CloseFile(Src);
end;
end;
[code]
Autor : Adam Boduch
//----------------------
z_forum_experta@beldzio.com
www.beldzio.com
Szukam betatesterów chętnych proszę o wpisanie się na wyżej wymienionej stronie
callto://beldzio_software
Beldzio gdzie w twojej proceduze dokladnie jest ten % ? Bo troche sie zagubilem :D
------------------------
gg: 4309144
icq: 261312711
aqq: 34365
mail: mifczu@boo.pl
web: www.mifczu@boo.pl
cytat:Mifczu napisał:
Beldzio gdzie w twojej proceduze dokladnie jest ten % ? Bo troche sie zagubilem :D
------------------------
gg: 4309144
icq: 261312711
aqq: 34365
mail: mifczu@boo.pl
web: www.mifczu@boo.pl
% pokazywane są w Progress.Position - czyli jak wstawisz ProgressBar to w nim zobaczysz postęp
//----------------------
z_forum_experta@beldzio.com
www.beldzio.com
Szukam betatesterów chętnych proszę o wpisanie się na wyżej wymienionej stronie
callto://beldzio_software
Dzieki juz zrobilem dziala jak chcialem. Wielkie THX
------------------------
gg: 4309144
icq: 261312711
aqq: 34365
mail: mifczu@boo.pl
web: www.mifczu@boo.pl
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
copyfile(co , gdzie, true);
Ale jak zrobic by byl widoczny postep ??
Zaluzmy ze procent bedzie w zmiennej "proc" Jak zrobic reszte :lol::?
------------------------
gg: 4309144
icq: 261312711
aqq: 34365
mail: mifczu@boo.pl
web: www.mifczu@boo.pl
Skorzystaj z komponentu TGauge, możesz zrobić coś takiego, wczytujesz rozmiar pliku i zapisujesz go w pamięci i np. co sekundę komponent TTimer sprawdzasz ile już jest danego pliku skopiowanego na dysku i robisz proste obliczenie dane przesyłasz do komponentu TGauge, a on wyświetla ilość procencików ;).
P.S. To było w którymś z numerów eksperta jak był robiony na jego łamach EKspert Commander (chyba 4/03, ale mógł to być również 3/03, 2/03 jak i 1/03) ;).
// My Web // My GG // My E-Mail //
[code]
procedure TMain.CopyClick(Sender: TObject);
const
SrcPath = 'C:flash.rar';
DstPath = 'C:flash-kopia.rar';
var
Src, Dst : file;
FSize : Integer;
RealSize : Integer;
Buffer: array[0..1024] of char;
TotalSize : Integer;
begin
TotalSize := 0;
AssignFile(Src, SrcPath);
try
Reset(Src, 1); // otwieramy plik źródłowy
AssignFile(Dst, DstPath);
try
ReWrite(Dst, 1); // tworzymy nowy plik
FSize := FileSize(Src); // określamy rozmiar pliku źródłowego
Progress.Max := FSize;
{ pętla odczytuje określone porcje danych a następnie te porcje
zapisuje do nowego pliku }
repeat
// odczytaj 1 kB danych
BlockRead(Src, Buffer, SizeOf(Buffer), RealSize);
if RealSize > 0 then // jeżeli odczytany rozmiar jest większy od zera...
begin
{ dodaj do zmiennej TotalSize }
TotalSize := TotalSize + RealSize;
{ zapisz odczytaną porcję danych do pliku przeznaczenia }
BlockWrite(Dst, Buffer, RealSize);
Progress.Position := TotalSize;
end;
until RealSize = 0;
finally
CloseFile(Dst);
end;
finally
CloseFile(Src);
end;
end;
[code]
Autor : Adam Boduch
//----------------------
z_forum_experta@beldzio.com
www.beldzio.com
Szukam betatesterów chętnych proszę o wpisanie się na wyżej wymienionej stronie
callto://beldzio_software
Beldzio gdzie w twojej proceduze dokladnie jest ten % ? Bo troche sie zagubilem :D
------------------------
gg: 4309144
icq: 261312711
aqq: 34365
mail: mifczu@boo.pl
web: www.mifczu@boo.pl
cytat:Mifczu napisał:
Beldzio gdzie w twojej proceduze dokladnie jest ten % ? Bo troche sie zagubilem :D
------------------------
gg: 4309144
icq: 261312711
aqq: 34365
mail: mifczu@boo.pl
web: www.mifczu@boo.pl
% pokazywane są w Progress.Position - czyli jak wstawisz ProgressBar to w nim zobaczysz postęp
//----------------------
z_forum_experta@beldzio.com
www.beldzio.com
Szukam betatesterów chętnych proszę o wpisanie się na wyżej wymienionej stronie
callto://beldzio_software
Dzieki juz zrobilem dziala jak chcialem. Wielkie THX
------------------------
gg: 4309144
icq: 261312711
aqq: 34365
mail: mifczu@boo.pl
web: www.mifczu@boo.pl