?? main.pas
字號:
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 + -