📄 w_testpaper.~pas
字号:
unit w_Testpaper;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DB, ExtCtrls, DBCtrls, DBTables, ComCtrls;
type
Ttestpaper = class(TForm)
StaticText1: TStaticText;
Shape2: TShape;
DBMemo1: TDBMemo;
Shape1: TShape;
Label6: TLabel;
Label1: TLabel;
number: TDBText;
Label2: TLabel;
name: TDBText;
Label3: TLabel;
sex: TDBText;
Label7: TLabel;
DBImage1: TDBImage;
Timer1: TTimer;
DataSource1: TDataSource;
DataSource2: TDataSource;
GroupBox5: TGroupBox;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
BitBtn1: TBitBtn;
firstbtn: TBitBtn;
nextbtn: TBitBtn;
priorbtn: TBitBtn;
finishbtn: TBitBtn;
countbtn: TBitBtn;
BitBtn2: TBitBtn;
Query1: TQuery;
Label4: TLabel;
Label8: TLabel;
Label9: TLabel;
DBText1: TDBText;
Label5: TLabel;
Label11: TLabel;
Label18: TLabel;
Label19: TLabel;
ComboBox1: TComboBox;
Query3: TQuery;
DataSource4: TDataSource;
ComboBox3: TComboBox;
Label10: TLabel;
StaticText3: TStaticText;
StatusBar1: TStatusBar;
procedure BitBtn1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure nextbtnClick(Sender: TObject);
procedure priorbtnClick(Sender: TObject);
procedure firstbtnClick(Sender: TObject);
procedure finishbtnClick(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure countbtnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
testpaper: Ttestpaper;
implementation
uses exam, w_stu_main,chafen;
{$R *.dfm}
procedure Ttestpaper.BitBtn1Click(Sender: TObject);
begin
Application.Destroy;
Application.FreeInstance;
Application.terminate;
self.Close;
end;
procedure Ttestpaper.Timer1Timer(Sender: TObject);
//var procedure Ttestpaper.finishbtnClick();
begin
//label4.Caption:=timetostr(time);
//if(label4.caption=label8.caption)then
//Ttestpaper.finishbtnClick();
end;
procedure Ttestpaper.BitBtn2Click(Sender: TObject);
var str:string;
begin
str:='select * from qurrytable where stu_id='''+number.caption+'''and paper_id='''+ComboBox1.Text+'''';
// showmessage(str);
Query3.SQL.Clear;
Query3.SQL.Add(str);
Query3.Open;
if( query3.IsEmpty) then
begin
Query1.SQL.Clear;
ComboBox1.Enabled:=false;
BitBtn2.Enabled:=false;
str:='select q.content,m.question_no from questionlib q natural join makepaper m where m.paper_id='''+ComboBox1.Text+''' order by m.question_no';
Query1.SQL.Add(str);
Query1.Open;
label9.Caption:=timetostr(time);
label8.Caption:=timetostr(time+strtotime('02:00:00'));
Query1.Active:=true;
DBMemo1.Visible:=true;
DBText1.Visible:=true;
firstbtn.enabled:=true;
nextbtn.enabled:=true;
priorbtn.enabled:=true;
finishbtn.enabled:=true;
Combobox3.enabled:=true;
end
else
showmessage('此试卷已经考过!!!')
end;
procedure Ttestpaper.nextbtnClick(Sender: TObject);
var str:string;
points:Integer;
begin
str:='select answer from questionlib where question_id = (select question_id from makepaper where paper_id='''+ComboBox1.Text+''' and question_no='''+DBText1.Caption+''')';
//showmessage(str);
query3.SQL.Clear;
query3.SQL.Add(str);
query3.Open;
//showmessage( query3.FieldByName('answer').AsString);
if (ComboBox3.Text=query3.FieldByName('answer').AsString ) then
begin
str:='select points from makepaper where paper_id='''+ComboBox1.Text+''' and question_no='''+DBText1.Caption+'''';
query3.SQL.Clear;
query3.SQL.Add(str);
query3.Open;
points:=query3.FieldByName('points').AsInteger ;
// showmessage(query3.FieldByName('points').AsString);
end
else
points:=0;
query3.SQL.Clear;
str:='select * from testresult where stu_id='''+number.Caption+''' and paper_id='''+ComboBox1.Text+''' and question_no='''+DBText1.Caption+'''';
Query3.SQL.Add(str);
Query3.Open;
if(Query3.IsEmpty) then
begin
str:='insert into testresult values('''+number.Caption+''','''+ComboBox1.Text+''','''+ComboBox3.Text+''','+IntToStr(points)+','''+DBText1.Caption+''')';
Query3.SQL.Clear;
Query3.SQL.Add(str);
query3.ExecSQL;
end
else
begin
str:='update testresult set stu_answer='''+ComboBox3.Text+''',score='+IntToStr(points)+' where stu_id='''+number.Caption+''' and paper_id='''+ComboBox1.Text+''' and question_no='''+DBText1.Caption+'''';
// showmessage(str);
Query3.SQL.Add(str);
Query3.SQL.Clear;
Query3.SQL.Add(str);
query3.ExecSQL;
end;
if(Query1.FindNext = true) then
priorbtn.Enabled:=true
else
nextbtn.Enabled:=false;
end;
procedure Ttestpaper.priorbtnClick(Sender: TObject);
begin
if(query1.FindPrior) then
nextbtn.Enabled:=true
else
priorbtn.Enabled:=false;
end;
procedure Ttestpaper.firstbtnClick(Sender: TObject);
begin
priorbtn.Enabled:=true;
nextbtn.Enabled:=true ;
Query1.first;
end;
procedure Ttestpaper.finishbtnClick(Sender: TObject);
var str:string;
score:integer;
begin
DbMemo1.Enabled:=false;
Combobox3.Enabled:=false;
firstbtn.Enabled:=false;
finishbtn.Enabled:=false;
nextbtn.Enabled:=false;
priorbtn.Enabled:=false;
timer1.Enabled:=false;
countbtn.Enabled:=true;
query3.SQL.Clear;
str:='select sum(score) from testresult where stu_id='''+number.Caption+''' and paper_id='''+ComboBox1.Text+'''';
//showmessage(str) ;
query3.SQL.Add(str);
query3.Open;
score:=query3.FieldByName('sum(score)').AsInteger;
// showmessage(query3.FieldByName('sum(score)').AsString) ;
str:='insert into qurrytable values('''+number.Caption+''','+intToStr(score)+','''+ComboBox1.Text+''')';
// showmessage(str);
Query3.SQL.Clear;
Query3.SQL.Add(str);
query3.ExecSQL;
end;
procedure Ttestpaper.ComboBox1Change(Sender: TObject);
begin
bitbtn2.Enabled:=true;
end;
procedure Ttestpaper.countbtnClick(Sender: TObject);
begin
Application.CreateForm(Tstd_chafen, std_chafen);
std_chafen.Visible:=true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -