[DELPHI] Procedura wskazująca postęp kopiowanego pliku.

0

Witam dosc ciekawa procedure wskazujaca postep kopiowanego pliku i nawet dziala dosc fajnie:

procedure Copy(CopyFrom,CopyTo : String);
var
  Source, Dest : TFileStream;
  toCopy : Longint;
  FBytesCopied,FProcessed : Integer;

const
  ChunkSize : Integer = 9500;
begin
  FBytesCopied:=0;
  try
  source := TFileStream.Create( CopyFrom, fmOpenRead or fmShareDenyWrite );
   try
   Dest := TFileStream.Create( CopyTo, fmCreate );
  try
  repeat
  if (Source.Size-Source.Position) < ChunkSize then
   toCopy := Source.Size-Source.Position
  else
   toCopy := ChunkSize;
   Dest.CopyFrom( source, toCopy );
   Inc( FBytesCopied, toCopy );
  if Source.Size > 0 then
   FProcessed := Round(FBytesCopied*100/Source.Size)
  else
   FProcessed := 0;
   Form1.Gauge1.Progress:=FProcessed;
   Form1.Label1.Caption:=IntToStr(FProcessed);

  Application.ProcessMessages;

  until Dest.Size = Source.Size;
  finally
  end;
  finally
   Dest.Free;
  end;
  finally
  Source.Free;
  end;
end;

Ale teraz chcialbym zeby to samo dzialalo nie na pliku kopiowanym lokalnie tylko na pliku sciaganym, np przez komponet IDFTP.get. Mozna to jakos wykombinowac ? Bo tutaj moge ustalic jakby porcje kopiowanego pliku i znajac ta porcje oraz wielkosc pliku bez problemu zrobie progress bara; natomiast czy da sie ustalic porcje sciaganego pliku ? Bo jezeli tak to jestem w domu.

0

Owszem, da sie to zrobic :)
Przyklad z Progress Bar : w zdarzeniu OnWorkBegin dla idFTP wpisz

ProgressBar1.Max :=  AWorkCountMax;

nastepnie w OnWork wpisz ProgressBar1.Position := AWorkCount;

0
migajek napisał(a)

Owszem, da sie to zrobic :)
Przyklad z Progress Bar : w zdarzeniu OnWorkBegin dla idFTP wpisz

ProgressBar1.Max :=  AWorkCountMax;

nastepnie w OnWork wpisz ProgressBar1.Position := AWorkCount;



Wszystko jest ok, dziala, ale AworkCountMax mi nie rozpoznaje , pisze ze undeclared identifier, znalazlem tez wlasciwosc IdFTP taka jak: RecvBufferSize ktora okresla bufor przekazania danych ale tez go nie ma. Co to moze byc ? Jakas darmowa okrojona wersja komponentu ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1