| 1 | //kt -- Modified with SourceScanner on 8/29/2007
 | 
|---|
| 2 | unit UploadProgress;
 | 
|---|
| 3 | //kt Added this entire form.
 | 
|---|
| 4 | 
 | 
|---|
| 5 | interface
 | 
|---|
| 6 | 
 | 
|---|
| 7 | uses
 | 
|---|
| 8 |   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 | 
|---|
| 9 |   Dialogs, ExtCtrls, StdCtrls, ComCtrls, DKLang;
 | 
|---|
| 10 | 
 | 
|---|
| 11 | type
 | 
|---|
| 12 |   TUploadProgressForm = class(TForm)
 | 
|---|
| 13 |     ProgressBar: TProgressBar;
 | 
|---|
| 14 |     Label1: TLabel;
 | 
|---|
| 15 |     Image1: TImage;
 | 
|---|
| 16 |     ProgressMsg: TLabel;
 | 
|---|
| 17 |     DKLanguageController1: TDKLanguageController;
 | 
|---|
| 18 |   private
 | 
|---|
| 19 |     { Private declarations }
 | 
|---|
| 20 |     //startTime:  TDateTime;
 | 
|---|
| 21 |     //procedure DetermineIntervalTimes();
 | 
|---|
| 22 |   public
 | 
|---|
| 23 |     { Public declarations }
 | 
|---|
| 24 |     //procedure ResetStartTime;
 | 
|---|
| 25 |     procedure setMax(Max : integer);
 | 
|---|
| 26 |     procedure updateProgress(Current: integer);
 | 
|---|
| 27 |   end;
 | 
|---|
| 28 | 
 | 
|---|
| 29 | var
 | 
|---|
| 30 |   UploadProgressForm: TUploadProgressForm;
 | 
|---|
| 31 | 
 | 
|---|
| 32 | implementation
 | 
|---|
| 33 | 
 | 
|---|
| 34 | {$R *.dfm}
 | 
|---|
| 35 | 
 | 
|---|
| 36 |   //uses DateUtils,Math;
 | 
|---|
| 37 | 
 | 
|---|
| 38 |   {
 | 
|---|
| 39 |   procedure TUploadProgressForm.ResetStartTime();
 | 
|---|
| 40 |   begin
 | 
|---|
| 41 |     startTime := Now;
 | 
|---|
| 42 |   end;
 | 
|---|
| 43 |   }
 | 
|---|
| 44 | 
 | 
|---|
| 45 |   procedure TUploadProgressForm.setMax(Max : integer);
 | 
|---|
| 46 |   begin
 | 
|---|
| 47 |     ProgressBar.Max := Max;
 | 
|---|
| 48 |   end;
 | 
|---|
| 49 | 
 | 
|---|
| 50 | 
 | 
|---|
| 51 |   procedure TUploadProgressForm.updateProgress(Current: integer);
 | 
|---|
| 52 |   begin
 | 
|---|
| 53 |     ProgressBar.Position := Current;
 | 
|---|
| 54 |     //DetermineIntervalTimes();
 | 
|---|
| 55 |   end;
 | 
|---|
| 56 | 
 | 
|---|
| 57 |   {
 | 
|---|
| 58 |   procedure TUploadProgressForm.DetermineIntervalTimes();
 | 
|---|
| 59 |   var
 | 
|---|
| 60 |     elapsedSec: int64;
 | 
|---|
| 61 | 
 | 
|---|
| 62 |     elapsedTime : TDateTime;
 | 
|---|
| 63 |     remaining : integer;
 | 
|---|
| 64 |     rate : real;
 | 
|---|
| 65 |     remainSec : int64;
 | 
|---|
| 66 | 
 | 
|---|
| 67 |   begin
 | 
|---|
| 68 |     elapsedSec := SecondsBetween(Now,startTime);
 | 
|---|
| 69 |     if elapsedSec < 1 then elapsedSec := 1;
 | 
|---|
| 70 |     elapsedTime := IncSecond(0,elapsedSec);
 | 
|---|
| 71 | //  DecodeDateTime(elapsedTime; out AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word);
 | 
|---|
| 72 |     ElapsedTimeLabel.Caption := TimeToStr(elapsedTime);
 | 
|---|
| 73 | 
 | 
|---|
| 74 |     rate := ProgressBar.Max / elapsedSec;
 | 
|---|
| 75 |     remainSec := floor ((ProgressBar.Max-ProgressBar.Position) / rate);
 | 
|---|
| 76 |     RemainingTimeLabel.Caption := TimeToStr(IncSecond(0,remainSec));
 | 
|---|
| 77 |   end;
 | 
|---|
| 78 |   }
 | 
|---|
| 79 | 
 | 
|---|
| 80 | end.
 | 
|---|