石河子大学学士学位论文 附录
附录:系统主要代码
1.登录界面代码
procedure TEnter_Form.Enter_BtnClick(Sender: TObject); //登录系统 var
Password:string; begin
if XM_CB.Text='' then begin
MessageBox(handle,'用户名不能为空,请选择或输入用户名!','错误',MB_OK or MB_ICONERROR); exit; end;
DL_ADOQ.Close;
DL_ADOQ.SQL.Clear;
DL_ADOQ.SQL.Add('Select Password,QXID From 用户 Where UserName=(:Name)'); DL_ADOQ.Parameters.ParamByName('Name').Value:=XM_CB.Text; DL_ADOQ.Open;
if DL_ADOQ.FieldByName('Password').IsNull then Password:='' else Password:=DL_ADOQ.FieldValues['Password']; if Password=MM_E.Text then begin
YH:=XM_CB.Text;
QX:=DL_ADOQ.FieldValues['QXID']; self.Hide;
DL_ADOQ.Close;
FreeAndNil(DL_ADOQ); with TMain_F.Create(nil) do try
ShowModal; finally Free;
Application.Terminate; end; end else begin
MessageBox(0,'密码错误请重新输入!','密码错误',MB_OK or MB_ICONERROR); MM_E.Text:=''; end; end;
23
石河子大学学士学位论文 附录
2.试卷生成代码
procedure TMain_F.YLSJ_FBtnClick(Sender: TObject); //预览试卷 const
BF_Name: array[1..10] of string = ('一、', '二、', '三、', '四、', '五、', '六、', '七、', '八、', '九、', '十、'); JG: string = ' '; var
Template,NewTemplate,ItemIndex,Doc_Type,Doc_Visible:OleVariant; ItemIndex: OleVariant;
NewDocument: _Document;
FZ, TL, BF, STH, i, YTS: integer; temp, AppPath: string; begin
AppPath := ExtractFilePath(Application.ExeName); //取得本程序的路径 //显示进度窗口
RateProcess_F.Show;
RateProcess_F.CZ_P.Caption := '正在链接Microsoft Office Word......'; RateProcess_F.Rate_Gauge.MaxValue := SJT_ADOQ.RecordCount + 25; RateProcess_F.Repaint; //重绘窗口,否则显示不出新设置的控件属性 try
SJ_WA.Connect; except
MessageBox(handle, '无法连接,也许没有安装Word', '连接出错', MB_Ok or MB_ICONERROR);
RateProcess_F.Close; Abort; end;
RateProcess_F.Rate_Gauge.Progress := RateProcess_F.Rate_Gauge.Progress + 10; //SJ_WA.Visible := False;
//SJ_WA.Caption := '题库系统与试卷生成'; //建立一个新文档
{Template := EmptyParam; NewTemplate := false;} ItemIndex := 1;
NewDocument := SJ_WA.Documents.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam);
RateProcess_F.CZ_P.Caption := '正在新建Microsoft Office Word 文档......';
RateProcess_F.Rate_Gauge.Progress := RateProcess_F.Rate_Gauge.Progress + 5; RateProcess_F.Repaint;
//建立WordDocument连接, 用第二种方法不容易出错 //SJ_WD.ConnectTo(SJ_WA.Documents.Item(ItemIndex)); SJ_WD.ConnectTo(NewDocument);
24
石河子大学学士学位论文 附录
SJ_WD.Windows.Item(ItemIndex).Caption := '操作系统期末试卷'; //此文档的第一个窗口的标题
RateProcess_F.Rate_Gauge.Progress := RateProcess_F.Rate_Gauge.Progress + 5; RateProcess_F.Repaint;
//因为Word进行拼写检查需要很多时间,所以首先关闭检查 SJ_WA.Options.CheckSpellingAsYouType := False; SJ_WA.Options.CheckGrammarAsYouType := False; //设置Word的字体 SetFont(1, 0, 0, 22); //设置段落对齐方式
//SJ_WA.Documents.Item(ItemIndex).Paragraphs.Alignment :=wdAlignParagraphCenter; SJ_WD.Range.InsertAfter('操作系统期末试卷' + #13);
RateProcess_F.Rate_Gauge.Progress := RateProcess_F.Rate_Gauge.Progress + 5; RateProcess_F.Repaint;
SJ_WA.Documents.Item(ItemIndex).Paragraphs.Alignment:=wdAlignParagraphLeft;
SJ_WD.Range.InsertAfter('学校___________ 班级________ 姓名___________ 得分_____ ' + #13);
SetFont(0, 0, 0, 14);
25