Witam, mam problem z pokazywaniem szacowanego pozostałego czasu
do zakończenia przesyłania pliku. Wymyśliłem sobie coś bardzo
pokrętnego tzn. na formie z ProgressBarem (pbData) ustawiam
Timer i co sekundę wykonuję coś takiego:
var
GblTime : TDateTime;
GblLastPos : Integer;
procedure TfrmWaitOut.TimerTimer(Sender: TObject);
begin
GblTime := Now - GblTime;
GblLastPos := pbData.Position - GblLastPos;
lblTime.Caption := TimeToStr(((pbData.Max -
pbData.Position) / GblLastPos) * GblTime);
GblLastPos := pbData.Position;
GblTime := Now;
end;
No i to działa ale tragicznie, tzn czasami wyskakują błędy
'invalid floating point' a jak się porusza oknem po pulpicie
to może wyskoczyć 'devision by zero' no i jest fatalnie . . .
Czy ktoś ma jakiś dobry pomysł ?
Może są jakieś komponenty które od razu załatwiają sprawę
pokazywania takich danych jak pozostały czas i stosunek procentowy ?
P.S. tak samo dzieje się jak dam div zamiast '/', tyle że
wtedy pozostały czas zmienia się bardzo nieregularnie...