📄 main.~pas
字号:
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls,xpman, Buttons,shellapi, ExtCtrls, ToolWin,
ComCtrls, jpeg;
type
TF_main = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
SpeedButton7: TSpeedButton;
Panel4: TPanel;
Panel5: TPanel;
Panel6: TPanel;
SpeedButton8: TSpeedButton;
SpeedButton11: TSpeedButton;
SpeedButton12: TSpeedButton;
SpeedButton13: TSpeedButton;
SpeedButton9: TSpeedButton;
SpeedButton10: TSpeedButton;
SpeedButton14: TSpeedButton;
SpeedButton1: TSpeedButton;
Panel7: TPanel;
Image1: TImage;
StatusBar1: TStatusBar;
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure SpeedButton12Click(Sender: TObject);
procedure SpeedButton11Click(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
procedure SpeedButton10Click(Sender: TObject);
procedure SpeedButton14Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure SpeedButton11MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
procedure SpeedButton12MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
procedure SpeedButton13MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
procedure SpeedButton1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure SpeedButton10MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
procedure SpeedButton14MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
procedure SpeedButton9MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure SpeedButton13Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
F_main: TF_main;
Count:integer;//考题记录号
implementation
uses fdbc,fawe,fpar,fdata,fkao,ffan;
{$R *.dfm}
procedure TF_main.SpeedButton7Click(Sender: TObject);
begin
Panel4.Align:=alnone;
Panel4.Top:=panel4.Height+panel4.Top-panel5.Height;
speedbutton7.Enabled:=False;
speedbutton8.Enabled:=True;
end;
procedure TF_main.SpeedButton8Click(Sender: TObject);
begin
Panel4.Align:=alclient;
speedbutton8.Enabled:=False;
speedbutton7.Enabled:=True;
end;
procedure TF_main.SpeedButton12Click(Sender: TObject);
begin
Application.CreateForm(TF_awe,F_awe);
F_awe.i:=0;
F_awe.Timer1.Enabled:=true;
F_awe.ShowModal;
F_awe.Free;
end;
procedure TF_main.SpeedButton11Click(Sender: TObject);
var
sj,i,rcount,prcount:integer;
begin
randomize;
if application.MessageBox('是否恢复上一次的考题?','提示!',mb_yesno)=7 then//7为按下NO 按钮
begin
//删除考试数据库-------------------------------
with datamodule3.xkaoqy do
begin
close;
sql.clear;
sql.add('delete from xka_bio');
execsql;
end;
with datamodule3.xkaoqy do
begin
close;
with sql do
begin
clear;
add('select*from xka_bio');
end;
open;
end;
with datamodule3.pkaoqy do
begin
close;
sql.clear;
sql.add('delete from pka_bio');
execsql;
end;
with datamodule3.pkaoqy do
begin
close;
with sql do
begin
clear;
add('select*from pka_bio');
end;
open;
end;
//删除考试数据库-------------------------------
//*****************************************
// 选择题
//******************************************
sj:=random(5);//sj为一个不大于5随机值
i:=0;
count:=0;
rcount:=0;
prcount:=0;
with datamodule3 do
begin
treese.DataSet.First;
while (datamodule3.treeqy.eof=false) do //查找要考的表
begin
if rcount=strtoint(trim(datamodule3.parse.DataSet.Fields[5].AsString)) then
break; //showmessage();
if (trim(treese.DataSet.Fields[2].asstring)='1') then//值为1是在考试范围内的表
begin//找到表打开表
carqy.Close;
carqy.sql.clear;
carqy.SQL.Add('select*from'+' '+trim(treese.DataSet.Fields[3].asstring));
carqy.Open;
//查找合适的记录
while (datamodule3.carqy.eof=false) do
begin
count:=count+1;
if rcount=strtoint(trim(datamodule3.parse.DataSet.Fields[5].AsString)) then
break;
if (trim(carse.DataSet.Fields[8].AsString)<>'1') and ((trim(carse.DataSet.Fields[7].AsString)<>'是') and (trim(carse.DataSet.Fields[7].AsString)<>'否')) then
begin// 形成新表
with xkaoqy do
begin
close;
sql.clear;
sql.add('insert into xka_bio values(:p0,:p1,:p2,:p3,:p4,:p5,:p6,:p7,:p8,:p9)');
parameters[0].Value:=inttostr(rcount+1);
parameters[1].Value:=carse.DataSet.Fields[1].AsString;
parameters[2].Value:=carse.DataSet.Fields[2].AsString;
parameters[3].Value:=carse.DataSet.Fields[3].AsString;
parameters[4].Value:=carse.DataSet.Fields[4].AsString;
parameters[5].Value:=carse.DataSet.Fields[5].AsString;
if trim(carse.DataSet.Fields[6].asstring)<>'' then
parameters[6].Assign(carse.DataSet.Fields[6]);
parameters[7].Value:=carse.DataSet.Fields[7].AsString;
execsql;
carqy.Edit;
carse.DataSet.Fields[8].AsString:='1';//查找过的记录用1标记
carqy.Post;
end;
with xkaoqy do
begin
close;
with sql do
begin
clear;
add('select*from xka_bio');
end;
open;
end;
end;
if trim(datamodule3.parse.DataSet.Fields[1].AsString)='1' then//1为在参数表中设置的随机出题
for i:=0 to sj do//随机查找记录
datamodule3.carqy.Next
else
datamodule3.carqy.Next;
rcount:=datamodule3.xkaose.DataSet.RecordCount;
end;
end;
datamodule3.treeqy.Next;
end;
if datamodule3.xkaose.DataSet.RecordCount<strtoint(trim(datamodule3.parse.DataSet.Fields[5].AsString)) then
application.MessageBox('选择题库题不够。','提示',mb_ok);
end;
//*****************************************
// 判断题
//******************************************
with datamodule3 do
begin
count:=0;
treese.DataSet.First;
while (datamodule3.treeqy.eof=false) do //查找要考的表
begin
if prcount=strtoint(trim(datamodule3.parse.DataSet.Fields[4].AsString)) then
break;
if (trim(treese.DataSet.Fields[2].asstring)='1') then//值为1是在考试范围内的表
begin//找到表打开表
carqy.Close;
carqy.sql.clear;
carqy.SQL.Add('select*from'+' '+trim(treese.DataSet.Fields[3].asstring));
carqy.Open;
//查找合适的记录
while (datamodule3.carqy.eof=false) do
begin
count:=count+1;
if prcount=strtoint(trim(datamodule3.parse.DataSet.Fields[4].AsString)) then
break;
if (trim(carse.DataSet.Fields[8].AsString)<>'1') and ((trim(carse.DataSet.Fields[7].AsString)='是') or (trim(carse.DataSet.Fields[7].AsString)='否')) then
begin// 形成新表
with pkaoqy do
begin
close;
sql.clear;
sql.add('insert into pka_bio values(:p0,:p1,:p2,:p3,:p4,:p5)');
parameters[0].Value:=inttostr(prcount+1);
parameters[1].Value:=carse.DataSet.Fields[1].AsString;
if trim(carse.DataSet.Fields[6].asstring)<>'' then
parameters[2].Assign(carse.DataSet.Fields[6]);
parameters[3].Value:=carse.DataSet.Fields[7].AsString;
parameters[4].Value:=carse.DataSet.Fields[8].AsString;
execsql;
carqy.Edit;
carse.DataSet.Fields[8].AsString:='1';//查找过的记录用1标记
carqy.Post;
end;
with pkaoqy do
begin
close;
with sql do
begin
clear;
add('select*from pka_bio');
end;
open;
end;
end;
if trim(datamodule3.parse.DataSet.Fields[1].AsString)='1' then//1为在参数表中设置的随机出题
for i:=0 to sj do//随机查找记录
datamodule3.carqy.Next
else
datamodule3.carqy.Next;
prcount:=datamodule3.pkaose.DataSet.RecordCount;
end;
end;
datamodule3.treeqy.Next;
end;
if datamodule3.pkaose.DataSet.RecordCount<strtoint(trim(datamodule3.parse.DataSet.Fields[4].AsString)) then
application.MessageBox('判断题库题不够。','提示',mb_ok);
end;
end;
Application.CreateForm(TF_kao,F_kao);
F_kao.ShowModal;
F_kao.Free;
end;
procedure TF_main.SpeedButton9Click(Sender: TObject);
begin
Application.CreateForm(TF_dbc,f_dbc);
F_dbc.ShowModal;
F_dbc.Free;
end;
procedure TF_main.SpeedButton10Click(Sender: TObject);
begin
Application.CreateForm(TF_fan,F_fan);
F_fan.ShowModal;
F_fan.Free;
end;
procedure TF_main.SpeedButton14Click(Sender: TObject);
begin
Application.CreateForm(TF_par,F_par);
if trim(datamodule3.parse.DataSet.Fields[1].AsString)='0' then
F_par.RadioButton1.Checked:=true;
if trim(datamodule3.parse.DataSet.Fields[1].AsString)='1' then
F_par.RadioButton2.Checked:=true;
F_par.ShowModal;
F_par.Free;
end;
procedure TF_main.SpeedButton1Click(Sender: TObject);
begin
close;
end;
procedure TF_main.FormShow(Sender: TObject);
begin
statusbar1.Panels[1].Text:='今天日期:'+datetostr(date());
speedbutton8.Enabled:=false;
end;
procedure TF_main.SpeedButton11MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if (60<x) and (x<140) and (20<y) and (y< 30) then
Speedbutton11.Font.Color:=clred
else
Speedbutton11.Font.Color:= clblack;
end;
procedure TF_main.SpeedButton12MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if (60<x) and (x<140) and (20<y) and (y< 30) then
Speedbutton12.Font.Color:=clred
else
Speedbutton12.Font.Color:= clblack;
end;
procedure TF_main.SpeedButton13MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if (60<x) and (x<140) and (20<y) and (y< 30) then
Speedbutton13.Font.Color:=clred
else
Speedbutton13.Font.Color:= clblack;
end;
procedure TF_main.SpeedButton1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if (60<x) and (x<140) and (20<y) and (y< 30) then
Speedbutton1.Font.Color:=clred
else
Speedbutton1.Font.Color:= clblack;
end;
procedure TF_main.SpeedButton10MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if (60<x) and (x<140) and (20<y) and (y< 30) then
Speedbutton10.Font.Color:=clred
else
Speedbutton10.Font.Color:= clblack;
end;
procedure TF_main.SpeedButton14MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if (60<x) and (x<140) and (20<y) and (y< 30) then
Speedbutton14.Font.Color:=clred
else
Speedbutton14.Font.Color:= clblack;
end;
procedure TF_main.SpeedButton9MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if (60<x) and (x<140) and (20<y) and (y< 30) then
Speedbutton9.Font.Color:=clred
else
Speedbutton9.Font.Color:= clblack;
end;
procedure TF_main.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if application.MessageBox('是否退出?','提示!',mb_yesno)=7 then
canclose:=false;
end;
procedure TF_main.SpeedButton13Click(Sender: TObject);
begin
Application.HelpFile:='help.hlp';
Application.HelpCommand(help_finder,0);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -