function CalculateDLTime(const Value, Units, Connection: Integer): TDRec; var i, size_bits, filedltimesec, hourmod, HH, MM, SS: Integer;
Rec: TDRec;
function pow(a, b: Integer): Integer; function sl(nr, times: Integer): Integer; var i: Integer; begin Result := nr * nr; for i := 0 to times do Result := Result + nr * nr; end; begin
if a > b then Result := sl(a, b) else Result := sl(b, a); end; begin
case Units of 1: size_bits := (8 div 1) * Value; // bytes 2: size_bits := (8 div 1) * ((pow(2,10)) div 1) * Value; // kilobytes 3: size_bits := (8 div 1) * ((pow(2,20)) div 1) * Value; // Megabytes end;
// Calculate filedltimesec := Round(size_bits) div BpsArray[Connection];
hourmod := filedltimesec mod (60 * 60); // Modulus. HH := Floor(filedltimesec / (60 * 60));
MM := Floor(hourmod / 60);
SS := Floor(filedltimesec mod 60); // Modulus.
if SS > 0 then Inc(SS);
with Rec do
begin H := HH;
M := MM;
S := SS; end;
Result := Rec; end;
procedure TForm1.Button1Click(Sender: TObject); var i: Integer;
Rec: TDRec; begin ListView1.Items.Clear;
for i := 0 to Count do
begin Rec := CalculateDLTime(StrToInt(Edit1.Text), ComboBox1.ItemIndex + 1,i);
with ListView1.Items.Add do
begin Caption := NameArray[i];
SubItems.Add(IntToStr(Rec.H));
SubItems.Add(IntToStr(Rec.M));
SubItems.Add(IntToStr(Rec.S)); end; end; end;