源代码:
-------------------------------------------------------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,StrUtils;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
*******
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
js:integer;
keysum:integer;
flage:Boolean;
hThread1:THandle;
function rndsum():integer;stdcall;
implementation
{$R *.dfm}
//{$APPTYPE CONSOLE}
function rndsum():integer;stdcall;
var
i: Integer;
sum1: Integer;
str1: string;
str2: string;
begin
sum1:=14;
while True do
begin
if flage then
begin
flage:=false;
Randomize;
str1:='';
str2:='';
for i := 0 to sum1-1 do
begin
str1:=chr(48+Random(10));
str2:=str2+str1;
end;
form1.Label1.Caption:=str2;
end
else
begin
sleep(10);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
id: DWORD;
begin
//产生随机数线程
flage:=true;
hThread1:=CreateThread(nil,0,@rndsum,nil,0,id);
if(hThread1=0) then
begin
ShowMessage('线程创建失败!');
exit;
end;
//光标定位
form1.Edit1.SetFocus;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
I: Integer;
begin
halt;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
c1: string;
oldstr: string;
begin
//只能输入数字
if not (key in ['0'..'9',#8]) then
begin
key := #0;
exit;
end;
c1:=form1.Label1.Caption;
inc(js);
if(midstr(c1,js,1)<>key) then //按错了
begin
dec(js);
beep;
key:=#0;
exit;
end;
inc(keysum);
if(js>=14) then
begin
js:=0;
form1.Edit1.Text:='';
key:=#0;
flage:=true;
sleep(1);
end;
form1.Label2.Caption:='击键次数:'+inttostr(keysum);
end;
procedure TForm1.FormShow(Sender: TObject);
begin
//初始化变量
js:=0;
keysum:=0;
flage:=false;
form1.Label1.Font.Name:='Arial Black';
form1.Label1.Font.Height:=52;
form1.Edit1.Font.Name:='Arial Black';
form1.Edit1.Font.Height:=52;
end;
end.