请教个关于计时的问题
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
Button3: TButton;
Timer1: TTimer;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
n:integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); //数学运算
var i:integer;
d:integer;
begin
d:=50;
n:=1;
timer1.Enabled:=true;
for i:=1 to 90000000 do begin
d:=d*2;
d:=trunc(d/2); end;
timer1.enabled:=false;
edit1.text:=floattostr(d);
edit2.text:=inttostr(n); //显示所用时间
end;
procedure TForm1.Button2Click(Sender: TObject); //位运算
var i:integer;
d:integer;
begin
d:=50;
n:=1;
timer1.Enabled:=true;
for i:=1 to 90000000 do begin
d:=(d shl 1);
d:=(d shr 1); end;
timer1.enabled:=false;
edit1.text:=inttostr(d);
edit2.text:=inttostr(n); //显示所用时间
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
edit1.Text:='';
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
inc(n);
edit2.text:=inttostr(n);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
timer1.Enabled:=false;
end;
end.
我是在试验 位运算比数学运算快多少
但是为何edit2.text:=inttostr(n); //显示所用时间 的最终结果总是1呢?
我把timer1的Inteval改为20、200等结果都是1
这是怎么回事呢,谢谢!