query1.ParamByName('name_man').AsString:=Edit2.Text;
query1.ParamByName('type_cer').AsString:=Edit3.Text;
query1.ParamByName('num_cer').AsString:=Edit4.Text;
query1.ParamByName('reason').AsString:=Edit5.Text;
query1.ParamByName('time_move').AsString:=Label8.Caption;
query1.ParamByName('watch').AsString:=Label10.Caption;
query1.ParamByName('remark').AsString:=Memo1.Text;
query1.ExecSQL;
showmessage('登记完成!');
Form_valuables_move.Close;
end
else
showmessage('请将内容填写完整!');
end;
11. 用户管理窗体:(代码省略)
【调试】
在调试过程中,遇到的问题有:
在添加chockwaveflash时,需要自己添加flash组件;
对图片的保存问题的解决,可以用数据库的二进制格式保存,也可以用savetofile保存在一个文件夹中,通过loadfromfile在调用些图片;
窗体之间的调用:可以直接用form.show但是在系统未关闭时再次调用同一个窗体,它里面仍保存有上次调用时编辑的内容,所以大多窗体应使用application.creatform()的方法来实例化一个窗体类,再进行调用;
对于突然断电引起的部分文件中的代码丢失(遇到dcu文件不可用的致命错误),可以将错误的文件删除,再次启动,让它自行加载再细节调试来恢复;
由于对datebase不熟悉,在消去SQL Server系统登陆框时,达不到预期的效果。
【小结】
通过这次课程设计,使我更加熟悉delphi的可视化编程环境,体验了一次真正程序设计的过程,对delphi的常用组件更加熟练,及程序设计的一般方法有初步的形成。但还存在一些问题:
系统的健壮性不足;
系统内部(看不到的事件)的情况不是很了解,如使用Timer组件后,对Timer的每个时间周期所引起的内部变化不了解;
对有些异常事件,及系统错误不知所措,如系统执行完某个操作后,当系统关闭时会有“CPU threat错误”,对SQL Server的系统错误,如在delphi的query可执行这样的语句“select * from student where Num_room=:Num_room”,而在SQL Server的查询分析器中却不能执行这样的语句“select * from student where Num_room=4A220”