📄 p_brower_exam.~pas
字号:
unit P_brower_exam;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls,StrUtils;
type
TF_brower_exam = class(TForm)
ListView1: TListView;
procedure FormActivate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ListView1ColumnClick(Sender: TObject; Column: TListColumn);
procedure ListView1DblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
F_brower_exam: TF_brower_exam;
orderid:integer=1;
examid:integer;
implementation
uses main,P_which_key;
{$R *.dfm}
procedure TF_brower_exam.FormActivate(Sender: TObject);
begin
examid:=P_which_key.examid;
with main.DataModule2 do
begin
aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add('select * from 试卷表 where 试卷号='+inttostr(P_which_key.examid));
aq1.Open;
if aq1.Eof then
begin
messagedlg('数据库内部错误,请检查数据库一致性',mtinformation,[mbok],0);
exit;
end;
F_brower_exam.Caption:='试卷预览('+ trim(aq1.FieldValues['试卷名称'])+
'['+trim(aq1.FieldValues['出卷人'])+'])';
end;
end;
procedure TF_brower_exam.FormShow(Sender: TObject);
var
s:string;
begin
s:='SELECT 试题表.题目 AS 题目,题型表.name AS 题型,';
s:=s+'选项1,选项2,选项3,选项4,难度,分值,RTRIM(知识点表.name)';
s:=s+'+''[''+RTRIM(知识点表.subname) + '']'' AS 知识点';
s:=s+' FROM 用户作答表 INNER JOIN 试题表';
s:=s+' ON 用户作答表.题号=试题表.试题号 INNER JOIN';
s:=s+' 题型表 ON 试题表.题型=题型表.id INNER JOIN';
S:=S+' 知识点表 ON 试题表.知识点=知识点表.ID';
S:=S+' WHERE 用户作答表.试卷号='+inttostr(P_which_key.examid);
s:=s+' ORDER BY 题型表.id,试题表.试题号';
listview1.Items.Clear;
with main.DataModule2 do
begin
aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add(s);
aq1.Open;
while not aq1.Eof do
begin
with listview1.Items.Add do
begin
inc(examid);
Caption:=inttostr(examid);
subitems.Add(aq1.FieldValues['题目']);
subitems.Add(aq1.FieldValues['题型']);
subitems.Add(aq1.FieldValues['选项1']);
subitems.Add(aq1.FieldValues['选项2']);
subitems.Add(aq1.FieldValues['选项3']);
subitems.Add(aq1.FieldValues['选项4']);
subitems.Add(aq1.FieldValues['难度']);
subitems.Add(aq1.FieldValues['分值']);
subitems.Add(aq1.FieldValues['知识点']);
end;
aq1.Next;
end;
end;
end;
procedure TF_brower_exam.ListView1ColumnClick(Sender: TObject;
Column: TListColumn);
var
s:string;
begin
examid:=0;
s:='SELECT 试题表.题目 AS 题目,题型表.name AS 题型,';
s:=s+'选项1,选项2,选项3,选项4,难度,分值,RTRIM(知识点表.name)';
s:=s+'+''[''+RTRIM(知识点表.subname) + '']'' AS 知识点';
s:=s+' FROM 用户作答表 INNER JOIN 试题表';
s:=s+' ON 用户作答表.题号=试题表.试题号 INNER JOIN';
s:=s+' 题型表 ON 试题表.题型=题型表.id INNER JOIN';
S:=S+' 知识点表 ON 试题表.知识点=知识点表.ID';
S:=S+' WHERE 用户作答表.试卷号='+inttostr(examid);
if trim(column.Caption)='题目' then
s:=s+' ORDER BY 题目'
else if trim(column.Caption)='选项A' then
s:=s+' ORDER BY 选项1'
else if trim(column.Caption)='选项B' then
s:=s+' ORDER BY 选项2'
else if trim(column.Caption)='选项C' then
s:=s+' ORDER BY 选项3'
else if trim(column.Caption)='选项D' then
s:=s+' ORDER BY 选项4'
else if trim(column.Caption)='难度' then
s:=s+' ORDER BY 难度'
else if trim(column.Caption)='分值' then
s:=s+' ORDER BY 分值'
else if trim(column.Caption)='知识点' then
s:=s+' ORDER BY 知识点'
else
s:=s+' ORDER BY 题型表.id,试题表.试题号';
listview1.Items.Clear;
with main.DataModule2 do
begin
aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add(s);
aq1.Open;
while not aq1.Eof do
begin
with listview1.Items.Add do
begin
if trim(column.Caption) = '题号' then
begin
inc(examid);
Caption:=inttostr(examid);
end
else
caption:='无';
subitems.Add(aq1.FieldValues['题目']);
subitems.Add(aq1.FieldValues['题型']);
subitems.Add(aq1.FieldValues['选项1']);
subitems.Add(aq1.FieldValues['选项2']);
subitems.Add(aq1.FieldValues['选项3']);
subitems.Add(aq1.FieldValues['选项4']);
subitems.Add(aq1.FieldValues['难度']);
subitems.Add(aq1.FieldValues['分值']);
subitems.Add(aq1.FieldValues['知识点']);
end;
aq1.Next;
end;
end;
end;
procedure TF_brower_exam.ListView1DblClick(Sender: TObject);
var
s,ss:string;
begin
s:='题号:'+listview1.Selected.Caption+#13+#10;
if length(listview1.Selected.SubItems[0])>80 then
ss:=leftstr(listview1.Selected.SubItems[0],80)+'...'
else
ss:=listview1.Selected.SubItems[0];
s:=s+'题目:'+ss+#13+#10;
s:=s+'题型:'+listview1.Selected.SubItems[1]+#13+#10;
s:=s+'选项A:'+listview1.Selected.SubItems[2]+#13+#10;
s:=s+'选项B:'+listview1.Selected.SubItems[3]+#13+#10;
s:=s+'选项C:'+listview1.Selected.SubItems[4]+#13+#10;
s:=s+'选项D:'+listview1.Selected.SubItems[5]+#13+#10;
s:=s+'难度:'+listview1.Selected.SubItems[6]+#13+#10;
s:=s+'分值:'+listview1.Selected.SubItems[7]+#13+#10;
s:=s+'知识点:'+listview1.Selected.SubItems[8];
messagedlg(s,mtinformation,[mbok],0);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -