Marco Cantù 1998, Mastering Delphi 4
Project: VSPEED.DPR
Project Structure
VSPEED.DPR
program vspeed;
uses
Forms,
vspeedf in 'vspeedf.pas' {Form1};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
VSPEEDF.PAS
unit VSpeedF;
interface
uses
SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
ProgressBar1: TProgressBar;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Total: Variant;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
time1, time2: TDateTime;
n1, n2: Variant;
begin
time1 := Now;
n1 := 0;
n2 := 0;
ProgressBar1.Position := 0;
while n1 < 5000000 do
begin
n2 := n2 + n1;
Inc (n1);
if (n1 mod 50000) = 0 then
begin
ProgressBar1.Position := n1 div 50000;
Application.ProcessMessages;
end;
end;
// we must use the result
Total := n2;
time2 := Now;
Label1.Caption := FormatDateTime (
'n:ss', Time2-Time1) + ' seconds';
end;
procedure TForm1.Button2Click(Sender: TObject);
var
time1, time2: TDateTime;
n1, n2: Integer;
begin
time1 := Now;
n1 := 0;
n2 := 0;
ProgressBar1.Position := 0;
while n1 < 5000000 do
begin
n2 := n2 + n1;
Inc (n1);
if (n1 mod 50000) = 0 then
begin
ProgressBar1.Position := n1 div 50000;
Application.ProcessMessages;
end;
end;
// we must use the result
Total := n2;
time2 := Now;
Label2.Caption := FormatDateTime (
'n:ss', Time2-Time1) + ' seconds';
end;
end.
VSPEEDF.DFM
object Form1: TForm1
Left = 156
Top = 104
Width = 319
Height = 167
Caption = 'Variants Speed Test'
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 160
Top = 20
Width = 32
Height = 13
Caption = 'Label1'
end
object Label2: TLabel
Left = 160
Top = 60
Width = 32
Height = 13
Caption = 'Label2'
end
object Button1: TButton
Left = 56
Top = 16
Width = 75
Height = 25
Caption = 'Variants'
TabOrder = 0
OnClick = Button1Click
end
object Button2: TButton
Left = 56
Top = 56
Width = 75
Height = 25
Caption = 'Integers'
TabOrder = 1
OnClick = Button2Click
end
object ProgressBar1: TProgressBar
Left = 16
Top = 96
Width = 281
Height = 25
Min = 0
Max = 100
TabOrder = 2
end
end
Copyright Marco Cantù 1998