📄 st_sx.pas
字号:
unit st_sx;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons;
type
TForm2 = class(TForm)
StaticText1: TStaticText;
Panel1: TPanel;
Label1: TLabel;
tk: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
zsd: TComboBox;
zzsd: TComboBox;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
nr: TMemo;
tx: TComboBox;
nd: TComboBox;
fz: TEdit;
ans: TMemo;
Image1: TImage;
Button1: TButton;
Label8: TLabel;
Edit1: TEdit;
OpenDialog1: TOpenDialog;
GroupBox3: TGroupBox;
BitBtn2: TBitBtn;
BitBtn1: TBitBtn;
ListBox1: TListBox;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure txChange(Sender: TObject);
procedure zsdChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
snode,psnode,ppsnode:string;
iii:integer;
implementation
{$R *.dfm}
uses Main,submain;
procedure TForm2.FormCreate(Sender: TObject);
var ss:string;
begin
panel1.Width:=form2.Width;
//自动录入知识点
with main.DataModule2 do
begin
aq1.Close;
aq1.SQL.Clear;
ss:='select distinct name from 知识点表';
aq1.SQl.Add(ss);
aq1.Open;
zsd.Clear;
while not aq1.Eof do
begin
zsd.Items.Add(aq1.FieldValues['name']);
aq1.Next;
end;
end;
//录入子知识点
with main.DataModule2 do
begin
aq1.Close;
aq1.SQL.Clear;
ss:='select distinct subname from 知识点表';
aq1.SQl.Add(ss);
aq1.Open;
zzsd.Clear;
while not aq1.Eof do
begin
zzsd.Items.Add(aq1.FieldValues['subname']);
aq1.Next;
end;
end;
//录入题型
with main.DataModule2 do
begin
aq1.Close;
aq1.SQL.Clear;
ss:='select distinct name from 题型表';
aq1.SQl.Add(ss);
aq1.Open;
tx.Clear;
while not aq1.Eof do
begin
tx.Items.Add(aq1.FieldValues['name']);
aq1.Next;
end;
end;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
//messagebox(handle,pchar(inttostr(iii)),pchar('asdf'),MB_OK);
if opendialog1.Execute then
begin
image1.Picture.LoadFromFile(opendialog1.FileName);
edit1.Text:=opendialog1.FileName;
end;
end;
procedure TForm2.FormShow(Sender: TObject);
var ssql:string;
begin
edit2.Enabled:=false;
edit3.Enabled:=false;
edit4.Enabled:=false;
edit5.Enabled:=false;
if snode<>'' then
begin
with main.DataModule2 do
begin
aq1.SQL.Clear;
aq1.Close;
ssql:='SELECT 试题表.试题号,题型表.name as txname,试题表.难度,试题表.分值,';
ssql:=ssql+'试题表.题目,试题表.选项1,试题表.选项2,试题表.选项3,';
ssql:=ssql+'试题表.选项4,试题表.标准答案,';
ssql:=ssql+'试题表.录入时间,试题表.自动判分,';
ssql:=ssql+'知识点表.name as zsdname,知识点表.subname,试题表.图片,';
ssql:=ssql+'题库表.name as tkname from 试题表,知识点表,题型表,题库表';
ssql:=ssql+' where 试题表.所属题库=题库表.id and ';
ssql:=ssql+'试题表.知识点=知识点表.id and 试题表.题型=题型表.id';
ssql:=ssql+' and 试题表.试题号='+inttostr(iii);
aq1.SQL.Add(ssql);
aq1.Open;
tk.Text:=trim(aq1.FieldValues['tkname']);
zsd.Text:=trim(aq1.FieldValues['zsdname']);
zzsd.Text:=trim(aq1.FieldValues['subname']);
tx.Text:=trim(aq1.FieldValues['txname']);
nd.Text:=inttostr(aq1.FieldValues['难度']);
fz.Text:=inttostr(aq1.FieldValues['分值']);
nr.Text:=aq1.FieldValues['题目'];
ans.Text:=aq1.FieldValues['标准答案'];
edit1.Text:=aq1.FieldValues['图片'];
edit2.Text:=aq1.FieldValues['选项1'];
edit3.Text:=aq1.FieldValues['选项2'];
edit4.Text:=aq1.FieldValues['选项3'];
edit5.Text:=aq1.FieldValues['选项4'];
if ((tx.Text='单选题')or(tx.Text='多选题')) then
begin
edit2.Enabled:=true;
edit3.Enabled:=true;
edit4.Enabled:=true;
edit5.Enabled:=true;
end;
if (tx.Text='判断题') then
begin
edit2.Enabled:=true;
edit3.Enabled:=true;
end;
end;
end;
end;
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure TForm2.BitBtn1Click(Sender: TObject);
var
ss:string;
tkid:integer;
zsdid:integer;
txid:integer;
spath,mysource,mydes:string;
begin
//查询题库id号
with main.DataModule2 do
begin
aq1.SQL.Clear;
aq1.Close;
ss:='select * from 题库表 where name='''+ tk.Text + '''';
aq1.SQL.Add(ss);
aq1.Open;
tkid:=aq1.FieldValues['id'];
end;
//查询知识点id号
ss:='';
with main.DataModule2 do
begin
aq1.SQL.Clear;
aq1.Close;
ss:='select * from 知识点表 where name='''+zsd.Text+''' and subname='''+zzsd.Text+'''';
aq1.SQL.Add(ss);
aq1.Open;
zsdid:=aq1.FieldValues['id'];
end;
//查询题型id
ss:='';
with main.DataModule2 do
begin
aq1.SQL.Clear;
aq1.Close;
ss:='select * from 题型表 where name='''+tx.Text+'''';
aq1.SQL.Add(ss);
aq1.Open;
txid:=aq1.FieldValues['id'];
end;
//录入试题表
with main.DataModule2 do
begin
aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add('select * from 试题表 where 试题号='+inttostr(iii));
aq1.Open;
aq1.Edit;
aq1.FieldByName('难度').AsInteger:=strtoint(nd.Text);
aq1.FieldByName('选项1').AsString :=edit2.Text ;
aq1.FieldByName('选项2').asstring :=edit3.text;
aq1.FieldByName('选项3').AsString :=edit4.Text ;
aq1.FieldByName('选项4').AsString :=edit5.text ;
aq1.FieldByName('题目').AsString :=nr.Text ;
aq1.FieldByName('知识点').AsInteger:=zsdid;
aq1.FieldByName('题型').AsInteger:=txid;
aq1.FieldByName('所属题库').AsInteger:=tkid;
aq1.FieldByName('分值').AsInteger:=strtoint(fz.Text);
aq1.FieldByName('标准答案').Asstring:=ans.Text;
spath:=extractfilepath(application.ExeName);
mydes:=spath+'ques_pic\'+extractfilename(opendialog1.FileName);
mysource:=opendialog1.FileName;
copyfile(pchar(mysource),pchar(mydes),true);
aq1.FieldByName('图片').Asstring:='ques_pic\'+extractfilename(opendialog1.FileName);
aq1.Post;
messagebox(handle,'录入到数据库成功!','信息',MB_OK);
close;
end;
end;
procedure TForm2.txChange(Sender: TObject);
var i:integer;
s:string;
begin
if ((tx.text='单选题')or(tx.text='多选题')) then
begin
edit2.Enabled:=true;
edit3.Enabled:=true;
edit4.Enabled:=true;
edit5.Enabled:=true;
edit2.Color:=clwhite;
edit3.Color:=clwhite;
edit4.Color:=clwhite;
edit5.Color:=clwhite;
exit;
end;
edit2.Enabled:=false;
edit3.Enabled:=false;
edit4.Enabled:=false;
edit5.Enabled:=false;
edit2.Color:=clbtnface;
edit3.Color:=clbtnface;
edit4.Color:=clbtnface;
edit5.Color:=clbtnface;
end;
procedure TForm2.zsdChange(Sender: TObject);
var ss:string;
begin
with main.DataModule2 do
begin
aq1.Close;
aq1.SQL.Clear;
ss:='select distinct subname from 知识点表 where name='''+trim(zsd.Text)+'''';
aq1.SQl.Add(ss);
aq1.Open;
zzsd.Clear;
while not aq1.Eof do
begin
zzsd.Items.Add(trim(aq1.FieldValues['subname']));
aq1.Next;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -