?? main_form.pas
字號:
begin
TempZJ.ZJID:=HaveZJ[i].ZJID;
TempZJ.ZJName:=HaveZJ[i].ZJName;
HaveZJ[i].ZJID:=HaveZJ[k].ZJID;
HaveZJ[i].ZJName:=HaveZJ[k].ZJName;
HaveZJ[k].ZJID:=TempZJ.ZJID;
HaveZJ[k].ZJName:=TempZJ.ZJName;
end;
end;
SDTN:=nil;
ZDTN:=nil;
for i:=0 to MaxNum do //輸出到ZJ_CT里
begin
temp:=FloatToStr(HaveZJ[i].ZJID);
if Pos('.',temp)=0 then
begin
SDTN:=SDZJ_CT.Items.AddChild(nil,temp+' '+HaveZJ[i].ZJName);
ZDTN:=ZDZJ_CT.Items.AddChild(nil,temp+' '+HaveZJ[i].ZJName)
end
else begin
SDZJ_CT.items.AddChild(SDTN,temp+' '+HaveZJ[i].ZJName);
ZDZJ_CT.items.AddChild(ZDTN,temp+' '+HaveZJ[i].ZJName);
end;
end;
HaveZJ:=nil; //釋放動態數組
JS_L.Caption:='教師: '+YH;
STTypeID:=TStringList.Create; //用于保存試題類型
STBH:=TStringList.Create; //用于保存試題編號
STND:=TStringList.Create; //用于保存試題難度
SJDA:=TStringList.Create;
XYSJ_FBtnClick(XYSJ_FBtn); //初始化現在試卷界面
end;
//****************************************************************************************
procedure TMain_F.XYSJ_FBtnClick(Sender: TObject); //現有試卷
begin
SJ_PC.ActivePage:=XYSJ_TS;
XYSJ_FBtn.ColorBorder:=clBlue; //界面控制
ZDSJ_FBtn.ColorBorder:=clMoneyGreen;
SDSJ_FBtn.ColorBorder:=clMoneyGreen;
TKLR_FBtn.ColorBorder:=clMoneyGreen;
TKWH_FBtn.ColorBorder:=clMoneyGreen;
XXSZ_FBtn.ColorBorder:=clMoneyGreen;
label1.Caption:='抽 取 現 有 試 卷';
XYSJ_FBtn.ColorHighLight:=clBlue;
XYSJ_FBtn.ColorShadow:=clBlue;
ZDSJ_FBtn.ColorHighLight:=clWhite;
ZDSJ_FBtn.ColorShadow:=clBlack;
SDSJ_FBtn.ColorHighLight:=clWhite;
SDSJ_FBtn.ColorShadow:=clBlack;
TKLR_FBtn.ColorHighLight:=clWhite;
TKLR_FBtn.ColorShadow:=clBlack;
TKWH_FBtn.ColorHighLight:=clWhite;
TKWH_FBtn.ColorShadow:=clBlack;
XXSZ_FBtn.ColorHighLight:=clWhite;
XXSZ_FBtn.ColorShadow:=clBlack;
SJ_ADOQ.Close; //查出現有的試卷
SJ_ADOQ.SQL.Clear;
SJ_ADOQ.SQL.Add('SELECT SJDH AS 試卷代號,CJLS AS 試卷創建者,ND AS 試卷難度 FROM SJ');
SJ_ADOQ.Open;
if not SJ_DBG.Fields[0].IsNull then SJDH:=SJ_DBG.Fields[0].AsString;
if SJDH<>'' then
begin
SJT_ADOQ.Close;
SJT_ADOQ.SQL.Clear;
SJT_ADOQ.SQL.Add('SELECT SJDH AS 試卷代號,Type.TypeName AS 題型,');
SJT_ADOQ.SQL.Add('BH AS 試題編號,FZ AS 試題分值 FROM SJT,Type ');
SJT_ADOQ.SQL.Add('WHERE SJDH=:SJDH AND SJT.TypeID=Type.TypeID');
SJT_ADOQ.Parameters.ParamByName('SJDH').Value:=SJDH;
SJT_ADOQ.Open;
end;
if (SJDA<>nil)and(SJDA.Count>0) then SJDA.Clear; //清掉試卷答案
end;
//****************************************************************************************
procedure TMain_F.ZDSJ_FBtnClick(Sender: TObject); //自己組卷
var
RY,ZD,Nan:integer;
begin
SJ_PC.ActivePage:=ZDSJ_TS;
XYSJ_FBtn.ColorBorder:=clMoneyGreen;
ZDSJ_FBtn.ColorBorder:=clBlue;
SDSJ_FBtn.ColorBorder:=clMoneyGreen;
TKLR_FBtn.ColorBorder:=clMoneyGreen;
TKWH_FBtn.ColorBorder:=clMoneyGreen;
XXSZ_FBtn.ColorBorder:=clMoneyGreen;
label1.Caption:='自 動 生 成 試 卷';
XYSJ_FBtn.ColorHighLight:=clWhite;
XYSJ_FBtn.ColorShadow:=clBlack;
ZDSJ_FBtn.ColorHighLight:=clBlue;
ZDSJ_FBtn.ColorShadow:=clBlue;
SDSJ_FBtn.ColorHighLight:=clWhite;
SDSJ_FBtn.ColorShadow:=clBlack;
TKLR_FBtn.ColorHighLight:=clWhite;
TKLR_FBtn.ColorShadow:=clBlack;
TKWH_FBtn.ColorHighLight:=clWhite;
TKWH_FBtn.ColorShadow:=clBlack;
XXSZ_FBtn.ColorHighLight:=clWhite;
XXSZ_FBtn.ColorShadow:=clBlack;
ZDZJ_CT.SetAllNodes(csChecked); //選中所有章節
SJTXX_ADOQ.Close; //查選擇題的信息
SJTXX_ADOQ.SQL.Clear;
SJTXX_ADOQ.SQL.Add('SELECT 1 FROM XuanZeTi WHERE NY=12');
SJTXX_ADOQ.Open;
RY:=SJTXX_ADOQ.RecordCount;
XZTRY_L.Caption:=IntToStr(RY);
SJTXX_ADOQ.Close;
SJTXX_ADOQ.SQL.Clear;
SJTXX_ADOQ.SQL.Add('SELECT 1 FROM XuanZeTi WHERE NY=13');
SJTXX_ADOQ.Open;
ZD:=SJTXX_ADOQ.RecordCount;
XZTZD_L.Caption:=IntToStr(ZD);
SJTXX_ADOQ.Close;
SJTXX_ADOQ.SQL.Clear;
SJTXX_ADOQ.SQL.Add('SELECT 1 FROM XuanZeTi WHERE NY=14');
SJTXX_ADOQ.Open;
Nan:=SJTXX_ADOQ.RecordCount;
XZTN_L.Caption:=IntToStr(Nan);
XZTG_L.Caption:=IntToStr(RY+ZD+Nan);
SJTXX_ADOQ.Close; //查填空題的信息
SJTXX_ADOQ.SQL.Clear;
SJTXX_ADOQ.SQL.Add('SELECT 1 FROM TianKong WHERE NY=12');
SJTXX_ADOQ.Open;
RY:=SJTXX_ADOQ.RecordCount;
TKTRY_L.Caption:=IntToStr(RY);
SJTXX_ADOQ.Close;
SJTXX_ADOQ.SQL.Clear;
SJTXX_ADOQ.SQL.Add('SELECT 1 FROM TianKong WHERE NY=13');
SJTXX_ADOQ.Open;
ZD:=SJTXX_ADOQ.RecordCount;
TKTZD_L.Caption:=IntToStr(ZD);
SJTXX_ADOQ.Close;
SJTXX_ADOQ.SQL.Clear;
SJTXX_ADOQ.SQL.Add('SELECT 1 FROM TianKong WHERE NY=14');
SJTXX_ADOQ.Open;
Nan:=SJTXX_ADOQ.RecordCount;
TKTN_L.Caption:=IntToStr(Nan);
TKTG_L.Caption:=IntToStr(RY+ZD+Nan);
SJTXX_ADOQ.Close; //查簡答題的信息
SJTXX_ADOQ.SQL.Clear;
SJTXX_ADOQ.SQL.Add('SELECT 1 FROM JianDaTi WHERE NY=12');
SJTXX_ADOQ.Open;
RY:=SJTXX_ADOQ.RecordCount;
JDTRY_L.Caption:=IntToStr(RY);
SJTXX_ADOQ.Close;
SJTXX_ADOQ.SQL.Clear;
SJTXX_ADOQ.SQL.Add('SELECT 1 FROM JianDaTi WHERE NY=13');
SJTXX_ADOQ.Open;
ZD:=SJTXX_ADOQ.RecordCount;
JDTZD_L.Caption:=IntToStr(ZD);
SJTXX_ADOQ.Close;
SJTXX_ADOQ.SQL.Clear;
SJTXX_ADOQ.SQL.Add('SELECT 1 FROM JianDaTi WHERE NY=14');
SJTXX_ADOQ.Open;
Nan:=SJTXX_ADOQ.RecordCount;
JDTN_L.Caption:=IntToStr(Nan);
JDTG_L.Caption:=IntToStr(RY+ZD+Nan);
SJTXX_ADOQ.Close; //查原理論述題的信息
SJTXX_ADOQ.SQL.Clear;
SJTXX_ADOQ.SQL.Add('SELECT 1 FROM YuanLiLunShu WHERE NY=12');
SJTXX_ADOQ.Open;
RY:=SJTXX_ADOQ.RecordCount;
YLLSTRY_L.Caption:=IntToStr(RY);
SJTXX_ADOQ.Close;
SJTXX_ADOQ.SQL.Clear;
SJTXX_ADOQ.SQL.Add('SELECT 1 FROM YuanLiLunShu WHERE NY=13');
SJTXX_ADOQ.Open;
ZD:=SJTXX_ADOQ.RecordCount;
YLLSTZD_L.Caption:=IntToStr(ZD);
SJTXX_ADOQ.Close;
SJTXX_ADOQ.SQL.Clear;
SJTXX_ADOQ.SQL.Add('SELECT 1 FROM YuanLiLunShu WHERE NY=14');
SJTXX_ADOQ.Open;
Nan:=SJTXX_ADOQ.RecordCount;
YLLSTN_L.Caption:=IntToStr(Nan);
YLLSTG_L.Caption:=IntToStr(RY+ZD+Nan);
SJTXX_ADOQ.Close; //查系統設計題的信息
SJTXX_ADOQ.SQL.Clear;
SJTXX_ADOQ.SQL.Add('SELECT 1 FROM XiTongSheJi WHERE NY=12');
SJTXX_ADOQ.Open;
RY:=SJTXX_ADOQ.RecordCount;
XTSJTRY_L.Caption:=IntToStr(RY);
SJTXX_ADOQ.Close;
SJTXX_ADOQ.SQL.Clear;
SJTXX_ADOQ.SQL.Add('SELECT 1 FROM XiTongSheJi WHERE NY=13');
SJTXX_ADOQ.Open;
ZD:=SJTXX_ADOQ.RecordCount;
XTSJTZD_L.Caption:=IntToStr(ZD);
SJTXX_ADOQ.Close;
SJTXX_ADOQ.SQL.Clear;
SJTXX_ADOQ.SQL.Add('SELECT 1 FROM XiTongSheJi WHERE NY=14');
SJTXX_ADOQ.Open;
Nan:=SJTXX_ADOQ.RecordCount;
XTSJTN_L.Caption:=IntToStr(Nan);
XTSJTG_L.Caption:=IntToStr(RY+ZD+Nan);
SJTXX_ADOQ.Close; //查系統操作題的信息
SJTXX_ADOQ.SQL.Clear;
SJTXX_ADOQ.SQL.Add('SELECT 1 FROM XiTongCZ WHERE NY=12');
SJTXX_ADOQ.Open;
RY:=SJTXX_ADOQ.RecordCount;
XTCZTRY_L.Caption:=IntToStr(RY);
SJTXX_ADOQ.Close;
SJTXX_ADOQ.SQL.Clear;
SJTXX_ADOQ.SQL.Add('SELECT 1 FROM XiTongCZ WHERE NY=13');
SJTXX_ADOQ.Open;
ZD:=SJTXX_ADOQ.RecordCount;
XTCZTZD_L.Caption:=IntToStr(ZD);
SJTXX_ADOQ.Close;
SJTXX_ADOQ.SQL.Clear;
SJTXX_ADOQ.SQL.Add('SELECT 1 FROM XiTongCZ WHERE NY=14');
SJTXX_ADOQ.Open;
Nan:=SJTXX_ADOQ.RecordCount;
XTCZTN_L.Caption:=IntToStr(Nan);
XTCZTG_L.Caption:=IntToStr(RY+ZD+Nan);
ZDST:=nil;
end;
//****************************************************************************************
procedure TMain_F.SDSJ_FBtnClick(Sender: TObject);
var
temp:string;
begin
SJ_PC.ActivePage:=SDSJ_TS;
XYSJ_FBtn.ColorBorder:=clMoneyGreen;
ZDSJ_FBtn.ColorBorder:=clMoneyGreen;
SDSJ_FBtn.ColorBorder:=clBlue;
TKLR_FBtn.ColorBorder:=clMoneyGreen;
TKWH_FBtn.ColorBorder:=clMoneyGreen;
XXSZ_FBtn.ColorBorder:=clMoneyGreen;
label1.Caption:='手 動 生 成 試 卷';
XYSJ_FBtn.ColorHighLight:=clWhite;
XYSJ_FBtn.ColorShadow:=clBlack;
ZDSJ_FBtn.ColorHighLight:=clWhite;
ZDSJ_FBtn.ColorShadow:=clBlack;
SDSJ_FBtn.ColorHighLight:=clBlue;
SDSJ_FBtn.ColorShadow:=clBlue;
TKLR_FBtn.ColorHighLight:=clWhite;
TKLR_FBtn.ColorShadow:=clBlack;
TKWH_FBtn.ColorHighLight:=clWhite;
TKWH_FBtn.ColorShadow:=clBlack;
XXSZ_FBtn.ColorHighLight:=clWhite;
XXSZ_FBtn.ColorShadow:=clBlack;
STTypeID.Clear;; //清除數據
SDZJ_CT.SetAllNodes(csUnChecked);
STBH.Clear;
STND.Clear;
XZTSL_FSE.Value:=0; //設置選擇題數量為0
TKTSL_FSE.Value:=0;
JDTSL_FSE.Value:=0;
YLLSTSL_FSE.Value:=0;
XTSJTSL_FSE.Value:=0;
XTCZTSL_FSE.Value:=0;
XZTFZ_FSE.Value:=0; //設置選擇題分值為0
TKTFZ_FSE.Value:=0;
JDTFZ_FSE.Value:=0;
YLLSTFZ_FSE.Value:=0;
XTSJTFZ_FSE.Value:=0;
XTCZTFZ_FSE.Value:=0;
ZF_FSE.Value:=100;
BCSJ_P.Enabled:=false;
//題型ID與題型按鈕對應
ST_ADOQ.Close;
ST_ADOQ.SQL.Clear;
ST_ADOQ.SQL.Add('SELECT * FROM Type');
ST_ADOQ.Open;
while not ST_ADOQ.Eof do
begin
temp:=ST_ADOQ.FieldValues['TypeName'];
if temp='選擇題' then XZT_FRBtn.Tag:=ST_ADOQ.FieldValues['TypeID'];
if temp='填空題' then TKT_FRBtn.Tag:=ST_ADOQ.FieldValues['TypeID'];
if temp='簡答題' then JDT_FRBtn.Tag:=ST_ADOQ.FieldValues['TypeID'];
if temp='系統設計題' then XTSJT_FRBtn.Tag:=ST_ADOQ.FieldValues['TypeID'];
if temp='原理論述題' then YLLST_FRBtn.Tag:=ST_ADOQ.FieldValues['TypeID'];
if temp='系統操作題' then XTCZT_FRBtn.Tag:=ST_ADOQ.FieldValues['TypeID'];
ST_ADOQ.Next;
end;
ST_ADOQ.Close; //只是把顯示清空
ST_ADOQ.SQL.Clear;
ST_ADOQ.SQL.Add('SELECT BH AS 編號,TypeID as 類型,TM as 題目,CZ AS 出自章節,');
ST_ADOQ.SQL.Add('NY AS 難易度 FROM XuanZeTi WHERE CZ=''1''');
ST_ADOQ.Open;
end;
//****************************************************************************************
procedure TMain_F.XYSJ_FBtnMouseEnter(Sender: TObject);
begin
if (Sender is TFlatButton) then (Sender as TFlatButton).Font.Color:=clMaroon;
end;
//****************************************************************************************
procedure TMain_F.XYSJ_FBtnMouseLeave(Sender: TObject);
begin
if (Sender is TFlatButton) then (Sender as TFlatButton).Font.Color:=clBlack;
end;
//****************************************************************************************
procedure TMain_F.ShowXJ(TypeID:integer;XiaoJie:string); //用于指定小節的試題
var
TableName:string;
begin
case TypeID of
0: TableName:='XuanZeTi';
1: TableName:='TianKong';
2: TableName:='JianDaTi';
3: TableName:='YuanLiLunShu';
4: TableName:='XiTongSheJi';
5: TableName:='XiTongCZ';
end;
ST_ADOQ.Close;
ST_ADOQ.SQL.Clear;
ST_ADOQ.SQL.Add('SELECT A.BH AS 編號,TypeID as 類型,TM as 題目,CZ AS 出自章節,');
ST_ADOQ.SQL.Add('B.NYD AS 難易度 FROM '+TableName+' AS A,NYD AS B');
ST_ADOQ.SQL.Add('WHERE TRIM(CZ)=:char AND A.NY=B.BH');
//ST_ADOQ.Parameters.ParamByName('TypeName').Value:=TypeName;
//不能用參數傳,否則FROM后的表名出錯。
ST_ADOQ.Parameters.ParamByName('char').Value:=XiaoJie;
ST_ADOQ.Open;
end;
//****************************************************************************************
procedure TMain_F.ShowZZ(TypeID:integer;ZhengZhang:string); //用于指定整章的試題
var
TableName:string;
begin
case TypeID of
0: TableName:='XuanZeTi';
1: TableName:='TianKong';
2: TableName:='JianDaTi';
3: TableName:='YuanLiLunShu';
4: TableName:='XiTongSheJi';
5: TableName:='XiTongCZ';
end;
ST_ADOQ.Close;
ST_ADOQ.SQL.Clear;
ST_ADOQ.SQL.Add('SELECT A.BH AS 編號,TypeID as 類型,TM as 題目,CZ AS 出自章節,');
ST_ADOQ.SQL.Add('B.NYD AS 難易度 FROM '+TableName+' AS A,NYD AS B');
ST_ADOQ.SQL.Add('WHERE LEFT(CZ,:num)=:char AND A.NY=B.BH');
ST_ADOQ.Parameters.ParamByName('num').Value:=Length(ZhengZhang);
ST_ADOQ.Parameters.ParamByName('char').Value:=ZhengZhang;
ST_ADOQ.Open;
end;
//****************************************************************************************
procedure TMain_F.ShowST; //自定義的函數用于顯示試題
var
ZJID:string;
begin
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -