源代码:
-------------------------------------------------------------------------
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.
-------------------------------------------------
界面代码:
object Form1: TForm1
Left = 0
Top = 0
BorderIcons = [biSystemMenu, biMinimize]
Caption = #23567#38190#30424#32451#20064' '#29482#24735#33021
ClientHeight = 252
ClientWidth = 390
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object Label2: TLabel
Left = 24
Top = 8
Width = 3
Height = 13
end
object Label1: TLabel
Left = 24
Top = 49
Width = 8
Height = 29
Font.Charset = DEFAULT_CHARSET
Font.Color = clRed
Font.Height = -24
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
end
object Edit1: TEdit
Left = 24
Top = 120
Width = 353
Height = 41
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlue
Font.Height = -19
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
TabOrder = 0
OnKeyPress = Edit1KeyPress
end
object Button1: TButton
Left = 208
Top = 203
Width = 81
Height = 30
Caption = #24320#22987
TabOrder = 1
OnClick = Button1Click
end
object Button2: TButton
Left = 295
Top = 203
Width = 82
Height = 30
Caption = #36864#20986
TabOrder = 2
OnClick = Button2Click
end
end
源代码下载:http://www.rayfile.com/files/03ca62e3-14ff-11df-b22f-0015c55db73d/