⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.pas

📁 用DELPHI编写的一个打字软件,想的朋友快点下啊,带源吗
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, StdCtrls, ExtCtrls, Buttons, Menus,shellapi, ToolWin, Gauges;

type
  Tseavtemain = class(TForm)
    StatusBar1: TStatusBar;
    OD1: TOpenDialog;
    Timer1: TTimer;
    Label5: TLabel;
    Timer2: TTimer;
    Timer3: TTimer;
    Timer4: TTimer;
    Timer5: TTimer;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Panel3: TPanel;
    Image2: TImage;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton1: TSpeedButton;
    SpeedButton3: TSpeedButton;
    Label6: TLabel;
    Label23: TLabel;
    Label1: TLabel;
    Label2: TLabel;
    Bevel2: TBevel;
    Label22: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label9: TLabel;
    Label8: TLabel;
    Label7: TLabel;
    Label18: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    Image4: TImage;
    Label15: TLabel;
    SpeedButton6: TSpeedButton;
    SpeedButton7: TSpeedButton;
    SpeedButton8: TSpeedButton;
    SpeedButton10: TSpeedButton;
    Label21: TLabel;
    Bevel1: TBevel;
    Bevel3: TBevel;
    Bevel4: TBevel;
    Bevel5: TBevel;
    SpeedButton9: TSpeedButton;
    Edit3: TEdit;
    Memo2: TMemo;
    Panel1: TPanel;
    Gauge1: TGauge;
    Gauge2: TGauge;
    Label16: TLabel;
    Label17: TLabel;
    Label26: TLabel;
    Memo1: TMemo;
    Edit2: TEdit;
    Panel2: TPanel;
    Edit1: TEdit;
    Panel4: TPanel;
    Panel5: TPanel;
    RichEdit1: TRichEdit;
    Image1: TImage;
    Timer6: TTimer;
    SpeedButton11: TSpeedButton;
    SpeedButton12: TSpeedButton;
    SpeedButton13: TSpeedButton;
    SpeedButton14: TSpeedButton;
    Label27: TLabel;
    SD1: TSaveDialog;
    OD2: TOpenDialog;
    SpeedButton15: TSpeedButton;
    Bevel6: TBevel;
    Label28: TLabel;
    Label29: TLabel;
    Label30: TLabel;
    Label31: TLabel;
    Label32: TLabel;
    Edit4: TEdit;
    Label33: TLabel;
    Label34: TLabel;
    SpeedButton16: TSpeedButton;
    TabSheet3: TTabSheet;
    Panel6: TPanel;
    Image3: TImage;
    Image5: TImage;
    Label35: TLabel;
    Label36: TLabel;
    Label37: TLabel;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    Label12: TLabel;
    MainMenu1: TMainMenu;
    rtyrty1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure A2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure X1Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure Timer3Timer(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure SpeedButton10Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
    procedure Timer4Timer(Sender: TObject);
    procedure myidea(Sender: tobject);
    procedure myidea2(Sender: tobject);
    procedure FormShow(Sender: TObject);
    procedure SpeedButton8Click(Sender: TObject);
    procedure Timer5Timer(Sender: TObject);
    procedure D2Click(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure SpeedButton9Click(Sender: TObject);
    procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure SpeedButton12Click(Sender: TObject);
    procedure SpeedButton11Click(Sender: TObject);
    procedure SpeedButton15Click(Sender: TObject);
    procedure SpeedButton13Click(Sender: TObject);
    Procedure Mybmplaod(Sender: Tobject);
    procedure PageControl1Changing(Sender: TObject;
      var AllowChange: Boolean);
    procedure PageControl1Change(Sender: TObject);
    procedure Timer6Timer(Sender: TObject);
    procedure Edit4Change(Sender: TObject);
    procedure SpeedButton16Click(Sender: TObject);
    procedure Image2MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure SpeedButton14Click(Sender: TObject);
    procedure Edit1Enter(Sender: TObject);
    procedure Image4Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure Label12Click(Sender: TObject);
    procedure Label12MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure N3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  seavtemain: Tseavtemain;
  v,c,i,j,t,p,p0,q,q1,k,k1,n,m,l,t1,l1:integer;
  a,w,u,eorr:boolean;
implementation

uses setup, about,  help,  data, congr, setup2;

{$R *.DFM}

procedure Tseavtemain.SpeedButton2Click(Sender: TObject);
begin
SpeedButton5.Caption:='暂停(&T)';
seavtemain.SpeedButton4.Enabled:=true;
SpeedButton5.Font.Color:=clblue;

Edit2.Text:='';
Timer2.Enabled:=false;
label7.Caption:='0';
label8.Caption:='0';
label10.Caption:='0';
label11.Caption:='0';
t:=60;
t1:=60;
if od1.Execute then
 begin
   memo1.Lines.LoadFromFile(od1.FileName);
   label23.Caption:='综合测试';
   c:=0;
     showmessage('现在进行综合测试,请设置测试时间!');
 end;
seavtemain.myidea(Sender);
end;

procedure Tseavtemain.SpeedButton1Click(Sender: TObject);
begin
if i<=memo1.Lines.count-1 then
 begin
  i:=i+1;
  edit1.Text:=memo1.Lines.Strings[i];
 end else
   begin
   i:=0;
   edit1.Text:=memo1.Lines.Strings[i];
   end;
end;

procedure Tseavtemain.FormCreate(Sender: TObject);
begin
Mybmplaod(Sender);
c:=0;
memo1.Lines.LoadFromFile('seavte.txt');
myidea2(Sender);
seavtemain.myidea(Sender);
t:=60;
t1:=60;
eorr:=false;

w:=true;
u:=true;{控制设置对话框}
end;

procedure Tseavtemain.Edit2Change(Sender: TObject);
begin
panel2.left:=24+24*trunc(length(edit2.text)/2);
end;

procedure Tseavtemain.SpeedButton4Click(Sender: TObject);
begin
if timer2.Enabled=true then
    if Application.MessageBox(
        '确实要退出这次测试吗?',
        '确认',MB_YESNO + MB_DEFBUTTON1+MB_iconquestion)=idYES then
          begin
            seavtemain.Label6.Caption:='学生:';
            seavtemain.Edit2.Text:='';
            seavtemain.Timer2.Enabled:=false;
            seavtemain.label7.Caption:='0';
            seavtemain.label8.Caption:='0';
            seavtemain.label10.Caption:='0';
            seavtemain.label11.Caption:='0';
            t:=60;
            sets.ShowModal;
          end else
    else sets.ShowModal;
end;

procedure Tseavtemain.A2Click(Sender: TObject);
begin
aboutbox.ShowModal;
end;

procedure Tseavtemain.Timer1Timer(Sender: TObject);
begin
try
if (q*round(100/150)){有效速度}>strtoint(copy(memo2.Lines.Strings[3],10,3)) then
   begin
     seavtemain.memo2.Lines.Strings[0]:=label23.Caption+'最高记录:';
     seavtemain.memo2.Lines.Strings[1]:=label6.Caption;
     seavtemain.memo2.Lines.Strings[2]:=label17.Caption;
     seavtemain.memo2.Lines.Strings[3]:='有效速度:'+inttostr(q*round(100/150));
     seavtemain.Memo2.Lines.SaveToFile('toprecord.txt');
     myidea2(Sender);
   end;
label1.Caption:='正确:'+inttostr(trunc(m/2));
label2.Caption:='总数:'+inttostr(trunc(k/2))
except
begin
timer1.Enabled:=false;
eorr:=true;
Application.MessageBox('与程序结构有关的某些文件出现异常错误,导致程序无法正常运行,请与作者联系!','错误!',MB_OK+MB_iconstop);
end;
end;

end;

procedure Tseavtemain.Timer2Timer(Sender: TObject);
begin
t:=t-1;
if t>=10 then
  begin
   label10.Caption:=copy(inttostr(t),1,1);
   label11.Caption:=copy(inttostr(t),2,1);
  end else
        begin
          label10.Caption:='0';
          label11.Caption:=copy(inttostr(t),1,1);
        end;
if t=0 then t:=60;
if t=59 then
 begin
   l:=l-1;
   if l>=10 then
     begin
      label7.Caption:=copy(inttostr(l),1,1);
      label8.Caption:=copy(inttostr(l),2,1);
     end else
        begin
          label7.Caption:='0';
          label8.Caption:=copy(inttostr(l),1,1);
        end;
 end;
if (l-1=-1) and (t=60) then
   begin
      n:=1;
      for j:=1 to length(edit2.text) do
        begin
          if copy(edit2.text,n,1)=copy(edit1.text,n,1) then m:=m+1;
           k:=k+1;
           n:=n+1;
        end;
    begin
     p:=((strtoint(edit3.text)-strtoint(label7.Caption+label8.Caption))*60)+(60-strtoint(label10.Caption+label11.Caption))-60;
     q:=trunc((m/2)/(p/60));
     seavtemain.Gauge1.Progress:=q*round(100/150);
     label16.Caption:='有效速度:'+inttostr(q*round(100/150))+'个/分钟';
    end;
     timer2.Enabled:=false;
     speedbutton5.Enabled:=false;
     Application.MessageBox('您的测试时间已完了!','测试完毕',MB_OK +MB_iconexclamation);
     if  q*round(100/150)>=strtoint(sets.ComboBox1.Text) then  jh.ShowModal;
     edit2.Enabled:=false;
   end;
end;

procedure Tseavtemain.Edit3Change(Sender: TObject);
begin
l:=strtoint(edit3.text)
end;

procedure Tseavtemain.X1Click(Sender: TObject);
begin
close;
end;

procedure Tseavtemain.SpeedButton5Click(Sender: TObject);
begin
if timer2.Enabled=true then
  begin
   timer2.Enabled:=false;
   seavtemain.SpeedButton5.Caption:='继续(&L)';
   seavtemain.SpeedButton5.Font.Color:=clred;
   seavtemain.SpeedButton4.Enabled:=false;
   edit2.Enabled:=false;
  end
   else
     begin
       if (label8.Caption<>'0') or (label10.Caption<>'0') or (label11.Caption<>'0')
         or (label7.Caption<>'0') then timer2.Enabled:=true;
       seavtemain.SpeedButton5.Caption:='暂停(&L)';
       seavtemain.SpeedButton5.Font.Color:=clblue;
       seavtemain.SpeedButton4.Enabled:=true;
       edit2.Enabled:=true;
       edit2.SetFocus;
     end;
end;

procedure Tseavtemain.N2Click(Sender: TObject);
begin
shellexecute(handle,nil,'http://www.0769cn.com',nil,nil,sw_normal);

end;

procedure Tseavtemain.Timer3Timer(Sender: TObject);
var
s:string;
begin
    begin
      n:=1;
      for j:=1 to length(edit2.text) do
        begin
          if (copy(edit2.text,n,1)=copy(edit1.text,n,1))
             and ((length(edit2.text)>=length(edit1.text))  or (length(edit2.text)=44)) then m:=m+1;
         if (length(edit2.text)>=length(edit1.text))or(length(edit2.text)=44) then k:=k+1;
         n:=n+1;
        end;
         if k>0 then
          begin
           seavtemain.Gauge2.Progress:=trunc(100*((m/2)/(k/2)));
           label17.Caption:='正确率:'+inttostr(trunc(100*((m/2)/(k/2))))+'%';
          end else begin
                      seavtemain.Gauge2.Progress:=0;
                      label17.Caption:='正确率:0%';
                   end;
     s:=edit1.text;
     if length(edit2.text)=44 then
        begin
          delete(s,1,44);
          edit1.text:=s;
          edit2.text:='';
        end;
             if length(edit2.text)>=length(edit1.text) then
                begin
                  edit2.Text:='';
                  edit1.text:='';
                end;
        if edit1.Text='' then
          begin
           if i<=memo1.Lines.count-1 then
            begin
             i:=i+1;
             edit1.Text:=memo1.Lines.Strings[i];
            end else
              begin
              i:=0;
              edit1.Text:=memo1.Lines.Strings[i];
              end;
          end;
          if (timer2.Enabled=true) and (a=true) then
          begin
            p:=((strtoint(edit3.text)-strtoint(label7.Caption+label8.Caption))*60)+(60-strtoint(label10.Caption+label11.Caption))-60;
            q:=trunc((m/2)/(p/60));
            seavtemain.Gauge1.Progress:=q*round(100/150);
            label16.Caption:='有效速度:'+inttostr(q*round(100/150))+'个/分钟';
            a:=false;
          end;
     end;
     end;
procedure Tseavtemain.Edit1Change(Sender: TObject);
begin
a:=true;
end;

procedure Tseavtemain.SpeedButton6Click(Sender: TObject);
begin
if timer2.Enabled=true then
   if Application.MessageBox(
        '确实要退出这次测试,并接着进行"一级简码"测试吗?',
        '确认',MB_YESNO + MB_DEFBUTTON1+MB_iconquestion)=idYES
        then  begin
                c:=1;
                seavtemain.Edit2.Text:='';
                seavtemain.Timer2.Enabled:=false;
                seavtemain.label7.Caption:='0';
                seavtemain.label8.Caption:='0';
                seavtemain.label10.Caption:='0';
                seavtemain.label11.Caption:='0';

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -