📄 onexam.pas
字号:
unit OnExam;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls;
type
TExamForm = class(TForm)
Label1: TLabel;
Label4: TLabel;
Label5: TLabel;
ComboBox1: TComboBox;
Button1: TButton;
Button2: TButton;
ComboBox2: TComboBox;
Memo2: TMemo;
Edit2: TEdit;
GroupBox1: TGroupBox;
DBGrid1: TDBGrid;
GroupBox2: TGroupBox;
Memo1: TMemo;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ComboBox1Change(Sender: TObject);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
ExamForm: TExamForm;
implementation
uses DataModule, logindlg;
{$R *.dfm}
procedure TExamForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;
procedure TExamForm.ComboBox1Change(Sender: TObject);
begin
if combobox1.ItemIndex=0 then begin //选择题
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select * from 题库 where 题型=''选择题''';
adoquery1.Open;
edit2.Text:=InttoStr(adoquery1.fieldbyname('分值').AsInteger);
memo1.Text:=adoquery1.fieldbyname('题干').AsString;
combobox2.Visible:=true;
memo2.Visible:=false;
end else if combobox1.ItemIndex=1 then begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select * from 题库 where 题型=''填空题''';
adoquery1.Open;
edit2.Text:=InttoStr(adoquery1.fieldbyname('分值').AsInteger);
memo1.Text:=adoquery1.fieldbyname('题干').AsString;
memo2.Visible:=true;
combobox2.Visible:=false;
end else if combobox1.ItemIndex=2 then begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select * from 题库 where 题型=''问答题''';
adoquery1.Open;
edit2.Text:=InttoStr(adoquery1.fieldbyname('分值').AsInteger);
memo1.Text:=adoquery1.fieldbyname('题干').AsString;
memo2.Visible:=true;
combobox2.Visible:=false;
end;
end;
procedure TExamForm.DataSource1DataChange(Sender: TObject; Field: TField);
var query:TADOQuery;
number:string;
tihao:string;
answer:string;
begin
edit2.Text:=adoquery1.fieldbyname('分值').AsString;
memo1.Text:=trim(adoquery1.Fieldbyname('题干').AsString);
tihao:=adoquery1.fieldbyname('小题题号').AsString;
number:=trim(Login.quanxiang);
query := TADOQuery.Create(nil);
query.Connection := Data.Connection;
query.Close;
query.SQL.Clear;
if combobox1.ItemIndex=0 then begin
query.SQL.Text:='select 答案 from 详细成绩表 where 准考证号 ='''+number+''' and 题型 = ''选择题'''+
' and 小题题号 ='+ tihao+'';
query.Open;
if query.Recordset.RecordCount <> 0 then begin
answer:=trim(query.fieldbyname('答案').AsString);
if answer='A' then
combobox2.ItemIndex:=0
else if answer='B' then
combobox2.ItemIndex:=1
else if answer='C' then
combobox2.ItemIndex:=2
else if answer='D' then
combobox2.ItemIndex:=3
else
combobox2.ItemIndex:=-1;
end else combobox2.ItemIndex:=-1;
end else if combobox1.ItemIndex=1 then begin
query.SQL.Text:='select 答案 from 详细成绩表 where 准考证号 ='''+number+''' and 题型 = ''填空题'''+
' and 小题题号 ='+ tihao+'';
query.Open;
answer:='';
if query.Recordset.RecordCount <> 0 then begin
answer:=trim(query.fieldbyname('答案').AsString);
end;
memo2.Text:=answer;
end else if combobox1.ItemIndex=2 then begin
query.SQL.Text:='select 答案 from 详细成绩表 where 准考证号 ='''+number+''' and 题型 = ''问答题'''+
' and 小题题号 ='+ tihao+'';
query.Open;
answer:='';
if query.Recordset.RecordCount <> 0 then begin
answer:=trim(query.fieldbyname('答案').AsString);
end;
memo2.Text:=answer;
end;
end;
procedure TExamForm.FormCreate(Sender: TObject);
begin
DBGrid1.Columns[0].FieldName:='小题题号';
end;
procedure TExamForm.Button2Click(Sender: TObject);
begin
memo2.Clear;
combobox2.ItemIndex:=-1;
end;
procedure TExamForm.Button1Click(Sender: TObject);
var number:string;
tihao:string;
answer:string;
query:TADOQuery;
query1:TADOQuery;
begin
number:=trim(Login.quanxiang);
tihao:=adoquery1.fieldbyname('小题题号').AsString;
query1 := TADOQuery.Create(nil);
query1.Connection := Data.Connection;
query1.Close;
query1.SQL.Clear;
query := TADOQuery.Create(nil);
query.Connection := Data.Connection;
query.Close;
query.SQL.Clear;
if combobox1.ItemIndex=0 then begin //选择题
answer:=trim(combobox2.Text);
query.SQL.Text:='select 答案 from 详细成绩表 where 准考证号 ='''+number+''' and 题型 = ''选择题'''+
' and 小题题号 ='+ tihao+'';
query.Open;
if query.Recordset.RecordCount <> 0 then begin
query.SQL.Text:='update 详细成绩表 set 答案 =''' +answer+''' where 准考证号 ='''+number+''' and 题型 = ''选择题'''+
' and 小题题号 ='+ tihao+'';
end else begin
query.SQL.Text:='insert into 详细成绩表(准考证号,题型,小题题号,答案,得分) values ('''+number+
''',''选择题'','+tihao+','''+answer+''','+'0'+')';
end;
try
query.ExecSQL;
except
MessageBox(handle, '错误', '提示', mb_IconWarning + mb_Ok);
exit;
end;
MessageBox(handle, '解答成功', '提示', mb_IconWarning + mb_Ok);
end else if combobox1.ItemIndex=1 then begin
answer:=trim(memo2.Text);
query.SQL.Text:='select 答案 from 详细成绩表 where 准考证号 ='''+number+''' and 题型 = ''填空题'''+
' and 小题题号 ='+ tihao+'';
query.Open;
if query.Recordset.RecordCount <> 0 then begin
query.SQL.Text:='update 详细成绩表 set 答案 =''' +answer+''' where 准考证号 ='''+number+''' and 题型 = ''填空题'''+
' and 小题题号 ='+ tihao+'';
end else begin
query.SQL.Text:='insert into 详细成绩表(准考证号,题型,小题题号,答案,得分) values ('''+number+
''',''填空题'','+tihao+','''+answer+''','+'0'+')';
end;
try
query.ExecSQL;
except
MessageBox(handle, '错误', '提示', mb_IconWarning + mb_Ok);
exit;
end;
MessageBox(handle, '解答成功', '提示', mb_IconWarning + mb_Ok);
end else if combobox1.ItemIndex=2 then begin
answer:=trim(memo2.Text);
query.SQL.Text:='select 答案 from 详细成绩表 where 准考证号 ='''+number+''' and 题型 = ''问答题'''+
' and 小题题号 ='+ tihao+'';
query.Open;
if query.Recordset.RecordCount <> 0 then begin
query.SQL.Text:='update 详细成绩表 set 答案 =''' +answer+''' where 准考证号 ='''+number+''' and 题型 = ''问答题'''+
' and 小题题号 ='+ tihao+'';
end else begin
query.SQL.Text:='insert into 详细成绩表(准考证号,题型,小题题号,答案,得分) values ('''+number+
''',''问答题'','+tihao+','''+answer+''','+'0'+')';
end;
try
query.ExecSQL;
except
MessageBox(handle, '错误', '提示', mb_IconWarning + mb_Ok);
exit;
end;
MessageBox(handle, '解答成功', '提示', mb_IconWarning + mb_Ok);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -