欲编一个测试打字速度的小软件,求测每分钟打字速度的公式!
在窗体上放一个MEMO控件,和一开始按钮。在点开始按钮时,程序开始计时。。
然后在MEMO的CHANGE事件里用的公式来算打字速度。。
我想是用总字数来除所用时间数。。不知在代码上该如何体现。。
如能解决另开100分相送
:)
在窗体上放一个MEMO控件,和一开始按钮。在点开始按钮时,程序开始计时。。
然后在MEMO的CHANGE事件里用的公式来算打字速度。。
我想是用总字数来除所用时间数。。不知在代码上该如何体现。。
如能解决另开100分相送
:)
所用时间:gettickcount;
二者相除即可。
var
BeginTime,EndTime,BetweenTime:DataTime;
KnockSpeed:real;1、点击[开始]
BeginTime:=time;
2、点击[结束]
EndTime:=time;
BetweenTime:=EndTime-BeginTime;
KnockSpeed:=round(Length(memo1.lines.text)/MinuteOf(BetweenTime));
3、label1.caption:=FloaToStr(KnockSpeed)+'字/分钟';
var
S:TTime;
......procedure TForm1.Button1Click(Sender: TObject);
begin
S:=time;//开始计时
end;procedure TForm1.Memo1Change(Sender: TObject);
var
D:TTime;
Hour, Min, Sec, MSec:Word;
begin
D:=time;
DecodeTime(D-S, Hour, Min, Sec, MSec);
Edit1.Text:=FloatToStr(Length(memo1.text)/(Hour*3600+Min*60+Sec+MSec/1000));
// 单位:字/每秒
end;
procedure TForm1.Memo1Change(Sender: TObject);
var
n:integer;
beginn:=Memo1.GetTextLen;
label1.Caption:=inttostr(n div i);//用总字数来除所用时间(秒)数
end;procedure TForm1.Timer1Timer(Sender: TObject);
begin
i:=i+1;
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,math;type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Memo1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
starttime:integer;implementation{$R *.dfm}procedure TForm1.Memo1Change(Sender: TObject);
begin
caption:=formatfloat('0.00', memo1.GetTextLen/ ((GetTickCount-starttime)/1000/60));
end;procedure TForm1.Button1Click(Sender: TObject);
begin
starttime:=GetTickCount;
end;end.