小键盘练习程序delphi版

源代码:

-------------------------------------------------------------------------

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/

posted @ 2010-02-15 14:05  猪悟能  阅读(328)  评论(0编辑  收藏  举报