《2023DELPHI教学管理系统论文.docx》由会员分享,可在线阅读,更多相关《2023DELPHI教学管理系统论文.docx(28页珍藏版)》请在三一办公上搜索。
1、字波理工之松毕业设计(论文)DELPHI教学管理系统论文学院(系):计算机工程学院专业班级:0806班学生姓名:周元指导老师:好老师第一章前言一2rf*BCHJ2.1 项目背景32.2 系统功能设置32.3 系统功能模块3第二章系统流程及库文件(4-8)3.1系统流程-432/y43. 3数据库概念结构设计一33.4数据库逻辑结构设计一一(5-8)第四章程序源码-(8-21)4. 1登录界面(8-9)4. 2老师课程管理界面(9-13)4.3 教务处管理界面一一(1378)4.4 学生选课管理界面一(18-21)第五章系统测试215. 1系统不足215.2学生选课管理界面21第六章用户操作说明
2、(21-26)6. 1前期工程216.2系统演示-(22-26)致谢25第一章前言信息管理系统(MIS)是集计算机技术、网络通信技术为一体的信息系统工程,它能够使企业运行的数据更加精确、刚好、全面、详实,同时对各种信息进一步的加工,使企业领导层对生产、经营的决策依据更充分,更具有合理性科学性,并创建出更多的发展机会;另外也进一步加强企业的科学化、合理化、制度化、规范化管理,为企业的管理水平跨上新台阶,为企业持续、健康、稳定的发展打下基础。MIS系统开发过程不仅仅是一个编写应用程序的过程,而是以软件工程的思想为指导,从可行性探讨起先,经过系统分析、系统设计、系统实施等主要阶段而进行规范的开发过程
3、。目前国内运用和发展的MlS平台模式大体上分为两种:客户机/服务器(CIient/Server,简称C/S)模式和阅读器/服务器(BrOWSer/Server,简称C/S)模式。MlS系统不仅仅运用在企业中,它可以应用的方面很广,各行各业都可以应用:金融、保险、农业、工业等等。只要是有数据采集整理纪录的方面,都可以应用。学校作为一个独立的机构同样也不例外。而且学校的各种状况都比较困难,各个机构都各自独立,又相互联系,这就须要一个比较困难的MlS系统。学校的MIS系统一般由以下管理部分组成:学生信息管理,教学管理,教务处管理,财务管理,物资管理,后勤管理等。学校的各个系统又分为不同的管理人员,不
4、同的管理人员所看到的以及所操作管理的部分又不同,这就须要给不同的操作者供应不同的操作管理权限。不同身份的用户所须要的资料也不同,这须要给不同的用户供应不同的操作界面,进行不同的操作。而且不同身份的客户所关切的问题也不同,比如学校的运用者大体分学生、老师、教务处、这就须要在做MlS系统开发之前肯定要做好前期的需求分析,中期的系统设计、程序开发,而且也要留意后期的系统维护。关键字:教学管理、课程申请、审批、选课、查询第二章总体设计2.1 项目背景当今社会,科学技术飞速发展,学问更替日新月异。随着计算机应用在全世界的普遍推广,各大中专院校都渐渐实现了计算机化管理,并且视野已经深化到Internet领
5、域,实现了网络化管理。在学校里,假如说学生管理是为学习环境供应强大的后勤保障,那么教学管理就可以说是学校发展的强劲动力。加强教学管理,实现计算机化管理,不仅能使大中专院教学水平上了一个新台阶,而且便利了教学管理人员对学院教学、老师授课、学生学习等几大环节的深化了解和全面驾驭。在学校实现教学管理的计算机化,是学校建设的一个重要的方面。2.2 系统功能设置本文所作的软件是MIS系统中的教学管理系统,前台用DelPhi所开发,后台数据库运用的是SQL,采纳的是B/S模式,其内容包括:(1) 登录界面(功能为为不同的用户供应不同的登录界面,实现不同权限的客户不同的操作功能);(2) 老师课程申请(包括
6、增开新课程、删除旧课程、修改已有课程,为学生选课时运用),老师的课程管理(包括开设的课程列表、所报课程的学生名单、输入学生的成果);(3) 教务处课程设置审批(包括审批课程具体内容、通过审批、拒绝申请),课程资源安排(主要完成上课老师和时间的安排。每学期起先选课前须要清除全部原安排的资源,重新输入安排结果),选课结果查询管理界面(主要功能是将选课的结果转移到成果单中,同时兼有修改功能),成果单(主要完成每个课程成果单的查询。另外由于时间的原因,未能实现成果单的打印功能);(4) 学生选课功能(主要功能是实现课程的查询,把要选的课程加入已选课程表),学生查询成果功能(实现自己已学课程列表的成果查
7、询);2.3 系统功能模块系统各功能模块如图所示:教学信息管理系统增加新课程课程设置申请删除旧课程H名单打印ZL期末成绩输入普爵室分配课程安排报表选课结果管理成绩单生成因为运用这套系统的人员不光是教务管理人员,还包括学生和教室。不同的身份对数据库的操作权限也不同。为了避开管理的混乱,须要针对不同的角色设计不同的客户端,安排不同的权限,对同一个数据库进行合理的修改。教学管理信息体统是校内信息管理系统的一个重要的有机组成部分。这个系统与校内其它系统之间实现互依靠、相互补充的,他须要从学生信息管理系统获得学生的个人信息,从教室信息管理系统获得任课老师的相关信息。同时,此系统供应的成果单又为其它系统供
8、应了必要的参考。第三章系统流程及库文件2.4 系统流程流程图如图所示:3.2数据库需求分析依据图所室的数据流程,教学管理信息系统须要下数据项:A.课程:课程号、课程名称、讲课老师、学分、学时、上课时间、上课地点、课程简介、课程状态。B.选课结果:记录编号、选课人、所选课程。C.成果单:记录编号、学生、课程、成果所需的外部数据支持A.学生:学号、姓名、班级;B.老师:员工号、姓名、所在院系;3.4 数据库概念结构设计本系统所需数据的E-R模型图如图所示:3.5 数据库逻辑结构设计依据上面的E-R图,须要三个基本信息表:教室信息、学生信息、课程信息。其中,老师信息和学生信息在实际系统是从其它信息管
9、理系统的数据表中干脆读取。学生的选课信息须要用一个表来单独保存。由于每学期期末前都要进行选课,一次选课结束后要讲这个表的内容刚好保存到成果单数据表中。运用本系统的不光是教务处的管理人员和老师,每个学生都须要登录倒选课系统进行课程的选择。因此,须要对不同的登录人员进行密码认证和权限的限制,防止出现越权行为。用户名、密码和权限单独保存在一个数据表中。另外须要一个表格保存各记录号的计数值和一个课程状态代码表,这八个数据表的结构如下图所示:TEACHER老师个人信息表字段名数据类型是否为空说明IDCHAR(6)NOTNULL员工号(主关键字)NAMEVARCHAR(20)NOTNULL姓名DEPART
10、MENTCHAR(2)NOTNULL所属院系STUDENT学生个人信息表字段名数据类型是否为空说明IDCHAR(6)NOTNULL学号(主关键字)NAMEVARCHAR(20)NOTNULL姓名CLASSCHAR(4)NULL所在班级COURSE课程信息表字段名数据类型是否为空说明IDCHAR(IO)NOTNULL课程号(主关键字)NAMEVARCHAR(50)NOTNULL课程名称TEACHERCHAR(6)NOTNULL任课老师(外部关键字TEACHER)CREDIT_HOURSmallintNULL学分PERIODSmallintNULL学时CLASSTIMEVARCHAR(20)NUL
11、L上课时间CLASSROOMVARCHAR(20)NULL上课地点INTROVARCHAR(4000)NULL课程简介STATECHAR(I)NOTNULL课程状态(外部关键字COURSE_STATE)COURSE_SELECT课程状态代码表字段名数据类型是否为空说明IDINTEGERNOTNULL记录号(主关键字)COURSECHAR(IO)NOTNULL课程号(外部关键字COURSE)STUDENTCHAR(6)NOTNULL选课学生(外部关键字STUDENT)SCORE成果信息表字段名数据类型是否为空说明IDINTEGERNOTNULL记录号(主关键字)STUDENTCHAR(6)NOT
12、NULL学号(外部关键字STUDENT)COURSECHAR(IO)NOTNULL课程号(外部关键字CoURSE)SCOREFLOATNULL成绩USER_PASS用户密码信息表字段名数据类型是否为空说明IDCHAR(6)NOTNULL用户名(主关键字)PASSWDCHAR(15)NOTNULL密码AUTHORITYCHAR(I)NOTNULL权限COURSE_STATE课程状态代码表字段名数据类型是否为空说明CODECHAR(I)NOTNULL状态代码(主关键字)DESCRIPTIONVARCHAR(20)NOTNULL描述COUNTER计数信息表字段名数据类型是否为空说明IDCHAR(I)
13、NOTNULL计数器号(主关键字)CoUNTER_VALUECHAR(15)NOTNULL计数值3.6 初始数据的输入在开发应用程序之前必需先输入部分基础的数据,包括部分老师的信息、用户名密码权限、所需的计数器和课程状态代码。计数器的设置如图一所示,课程状态代码的设置如图二所示,用户权限设置的设置如图三所示。图一:计数器设置计数器编号说明F成果记录编号K课程编号X选课编号图二课程状态代码状态代码说明0申请增加新课1申请删除旧课2申请修改课程3课选(激活)4等待课程支配5已删除6拒绝申请图三:用户权限权限代码说明O学生1老师2教务处第四章程序源码以下为程序的原码:4.1登录界面:用户认证的过程在
14、“登录按钮BOgin的OnCIiCk事务处理程序中完成,代码如下:procedureTF_Login.B_loginClick(Sender:TObject);begintryDatabaseLConnectedi=True;T_user.Filter:=ID=,+i_user.Text+H;T_user.FiItered:=True;T_user.Open;打开数据库连接依据输入的用户名设置过滤器激活过滤器。捕获信息exceptAPPHCation.MessageBoxC请与系统管理员联系。数据库连接错误!,MB_OK);AppIication.Terminate;数据库连接错误,报错并中断
15、程序end;ifT-user.RecordCount=1then推断用户名是否存在beginifT-user,AUTHORITY,=,0thenbeginF_main_st:=TF_main_st.Create(Self);tryF_main_st.ShowModal;finallyend;endelseifT-UserAUTHORITY,=,thenbeginF_main_tc:=TF_main_tc.Create(Self);WF_main_tc.ShowModal;finallyend;endelsebeginF_mainJwc:=TF_mainJwc.Create(Self);WF_m
16、ain_jwc.ShowModaI;finallyend;endendelseAPPIiCatiOn.MessageBoxC密码不正确,请重新确认,留意大小写!密码不匹配,MB_0K);EndelseAPPliCaIion.MessageBoxC请确认用户名是否正确!,无此用户,MB_0K);end;4.1老师课程管理界面:r旧呐119饮更京单I申请界面的OnShoW事务和“复原表单”按钮的OnCliek事务运用同一个事务处理程序,主要是初始化申请表单,代码如下:procedureTF_main_tc.B_resetClick(Sender:TObject);初始化申请表单begini_sta
17、te_l.ItemIndexr=O;申请初始化到增开新课1.state-lClick(nil);,调用申请修改程序i_name_LText:=;隔除课程名i_credit_hour_LTexC=tO;初始化学分i_period_l.Text=O,;初始化学时i_intro_l.Lines.Clear;摘除课程简介end;关闭窗口时,要同时关闭整个应用程序,因此窗体OnCk)Se事务处理程序代码如下:procedureTF_main_tc.FormClose(Sender:TObject;varAction:TCloseAction);beginF_Login.i_user.Text:=;登录界
18、面清空F_Login.i_passwd.Text:=;Close;释放end;当修改申请的内容时,程序要依据状况确定是否显示已开课程列表。限制代码在LSta怆的OnCliCk时间处理程序中,代码如下:procedureTF_main_tc.i_state_IClick(Sender:TObject);beginifi_state_l.ItemIndexOthen假如不是新开课程,则显示列表beginT_course_1.Filter=,TEACHER=,+F.Login.Luser.Text+mANDSTATE5ANDSTATEot,;获得当前老师所开的课程不包括已删除和申请删除的课程激活已开
19、课程列表关闭已开课程数据表取消课程列表显示T_course_LFilteredi=True;T_course_!.Open;o_course_l.Enabledi=True;o_course_ICellClick(nil);endelsebegin假如是新开课程T_course_l.Close;o_course_l.Enabledi=False;end;end;假如是删除或修改旧的课程,在单击课程列表时,将在输入框中显示课程的具体信息,代码如下:procedureTF_main_tc.o_course_lCellClick(Column:TColumn);beginifT_course_l.A
20、ctivethen谁断课程信息表是否激活begini_name_l.Text:=T_course_HNAME|;提取课程名称i_credit_hour_l.Text:=T_course_lCREDIT-HOUR1;/三取课程学分i_period_1.Text:=T_course_1PERIOD;/三取课程学时i_intro_l.Lines.Clear;/隔除简介i_intro_l.Lines.Add(T_course_lINTRO,);/三取课程简介end;end;表单的提交在提交按钮B.submit的OnCIiek事务处理程序中进行,代码如下:procedureTF_main_tc.B_su
21、bmitClick(Sender:TObject);varCounteriinteger;course_id:String;begincasei_state_l.ItemindexofO:begin/获得课程计数T_counter_K.Open;counter:=T_counter_KCOUNTER_VALUE;inc(counter);T_counter_K.Edit;T.counter.K,COUNTER-VALUE=counter;T_counter_K.Post;T_counter_K.Close;合成课程编号course_id:=00000+IntTbStr(counter);cou
22、rse_id:=copy(course_id,length(course_id)-6,6);CourseJdi=FormatDateTimeCyyyy,now)+course_id;腐加课程信息T_course_l.Filteredz=False;T_course_l.Open;T_course_1.AppendRecord(course_id,i_name_l.Text,F_1ogin.i_user.Text,i_credit_hour_l.Text,i_period_l.Text,i_intro_l.Lines,O);end;1:beginT_course_l.Filteredz=Fals
23、e;T_course_l.Edit;T_course_l,STATET=,;用于计数用于保存课程编号依据不同申请,分别处理/0:增加新课打开计数器表偿得计数值/储加计数值修改计数器/检入新值/交修改关闭计数器表磁计数值转换为字符串截取固定长度字符串添加年份信息取消过滤追加纪录/1:删除取消过滤进行修改/使更课程状态提交修改T_course_l.Post;end;2:beginT_course_l.FiIteredr=False;T_course_l.Edit;T_course_ H N AME :=i_name_ 1 .Text;T_course_HCREDIT_HOUR|:=i_credit
24、_hour_l.Value;T_course_l PERIODl:=i_period_l .Value;T_course_HINTRO:=i_intro_l .Lines.Text;T_course_l STATE,=,2,;T_course_l .Post;end;end;B_resetClick(nil);end;2:申请修改进行修改修改课程名称修改课程学分修改课程学时修改课程信息修改课程状态提交复原表单在界面初始化的时候,须要列出可选的课程列表。TabSheet2的OnShoW事务处理代码如下:procedureTF_main_tc.TabSheet2Show(Sender:TObjec
25、t);begin选取激活的课程T_course_l.Filteri=TEACHER=+F_Login.i_user.Text+mANDSTATE=3;设置过滤条件当单击课程列表时,显示相应课程的学生名单和成果单输入表。程序代码在o_course_2的OnCellCliCk事务处理中:procedureTF_main_tc.o_course_2CellClick(Column:TColumn);beginT_course_LFilteredi=True;T_course_l.Open;o_course_2CellClick(nil);T_students.Open;end;激活过滤器打开数据表显
26、示学生名单和成果输入表打开学生名单表Q_students.Close;关闭查询Q_students.Params.ParamValuesrCOURSE:=T_course_lIDl;设置课程参数Q-students.Open;重新打开查询end;4.3 教务处管理界面:界面初始化打开申请课程列表打开老师信息表通过审批关闭查询/隔除语句/4:通过界面初始化工作在TabSheeH的OnShoW事务处理程序中完成,代码如下:procedureTF-mainJwc.TabSheet1Show(Sender:TObject);beginT_course_apply.0pen;T_teacher.Open
27、;end;“通过审批”按钮的代码如下:procedureTF_mainJwc.B_passClick(Sender:TObject);beginQ_update.Close;Q_update.SQL.Clear;QupdateSQLAdd(UPDATECOURSE);Q_update.SQL.Add(SETSTATE=4,);Q.update.SQL.Add(,WHEREID=+T_course_apply门D+”);Q_update.ExecSQL;T_course_apply.Refresh;end;“拒绝恳求”的按钮代码如下:procedureTF_main_jwc.B_rejectCl
28、ick(Sender:TObject);/席维恳求beginQ-update.Close;关闭查询Q_update.SQL.Clear;清除SQL语句QjipdaeSQLAddCUPDATECOURSEr);添加修改课程状态的SQL语句Q_update.SQL.Add(,SETSTArE=6);/6:拒绝申请Q.update.SQL.Add(,WHEREID=+T_course_apply门D+”);Q_update.ExecSQL;/Jfc行T_course_apply.Refresh;刷新end;界面初始化工作在TabSheet2的OnShOW事务处理程序中,代码如下:procedureT
29、F-mainJwc.TabSheet2Show(Sender:TObject);/界面初始化begin关闭未安排课程查询Q_course_not_actived.Close;关闭已安排课程查询Q_course_actived.Close;雨开未安排课程查询Q_course_not_actived.Open;/用开已安排课程查询Q_course_actived.Open;end;“提交安排”的处理程序如下:procedureTF_mainJwc.B_submitClick(Sender:TObject);beginWithQ_submitdo设置默认前缀Q_submitbeginClose;SQ
30、L.CIear;SQLAddCUPDATECOURSE);添加修改记录用的SQL语句SQL,Add(SETCLASSROOM=,Lclassroom.Text+,CLASSTIME=,Ltime.Text+STATE=3);SQL.Add(WHEREID=+Q_course_not_activedID+,*H);ExecSQL;/i行end;TabSheet2Show(nil);1.classroom.Text:=;1.time.Text:=;end;“取消当前安排纪录”的代码如下:procedureTF_mainJwc.B_disableClick(Sender:TObject);begin
31、WithQ_submitdobeginClose;SQL.Clear;SQLAddCUPDATECOURSE);SQL,Add(SETSTATE=(,4,);SQL.Add(WHEREID=+Q_course_activedID+);ExecSQL;end;TabSheet2Show(nil);end;“清除全部旧的安排”的代码如下:procedureTF_mainJwc.B_clear_allClick(Sender:TObject);beginifApplication.MessageBox(取消当前安排纪录/设置默认前缀Q.submit清除全部旧的安排确认要清除全部已安排资源?,操作确认
32、,MB_OKCANCEL)=IDOKthenBeginWithQ_submitdobeginClose;SQL.Clear;SQL.Add(,UPDATECOURSE);SQL.Add(,SETSTATE=4);确认/运用SQL语句的UPDATE指令来修改纪录设置默认前缀Q-Siibmit添加修改用的SQL语句SQL.Add(,WHERESTATE=3);ExecSQL;end;刷新显示TabSheet2Show(nil);end;end;HfSW*)ttIMl/期春分配地谡聒果亚友JM*I侬绿埠、I谡程号选课结果布局初始化beginT_course_select.Open;T_score.O
33、pen;end;“转移纪录”按钮的代码如下:procedureTF_main Jwc.Button 1 Click(Sender: TObject);var Counteninteger;beginT_counter_F.Open;counter:=T_counter_FCOUNTER_VALUE;T_course_select.First;while not T_course_select.Eof dobegininc(counter);打开己选课程数据表打开成果数据表/偌移纪录打开计数器获得计数值跳转至已选课程列表的第一行依次对全部记录进行操作增加计数器值选课结果布局初始化工作在TabSh
34、eeO的OnShOW事务处理程序中完成:procedureTF_mainJwc.TabSheei3Show(Sender:TObject);编辑计数器设置计数值 提交修改T_score.AppendRecord(counter,T-Curse-Select,STUDENT,T-Course-SelectfCOURSE,0);承移纪录T_course_select.Delete;删除旧纪录end;T_counter_F.Edit;T_counter_FrCOUNTER_VALUE:=counter;T_counter_F.Post;end;在输入课程编号后,单击“查询”按钮进行课程成果单查询过程
35、,代码如下:procedureTF-mainJwc.B_queryClick(Sender:TObject);begin查询课程名T-course-info.Filter=ID=,+Lcourse-icl.Text;T_course_info.Filtered:=True;T_course_info.Open;ifT_course_info.RecordCount=1thenbegin,7显示成果列表Q_score_list.Close;Q_score_list.Params0.AsString:=i_course_id.Text;Q_scoreisl.Open;查询课程统计信息QJnfo.C
36、lose;QJnfo.SQL.Clear;Qjnfo.SQLAddCSELECTCOUNT(STUDENT)as课程成果单查询/设置过滤条件激活过漉器提取课程信息/触断记录是否存在关闭查询设置课程编号参数打开成果查询COUNT,AVG(SCORE)asAVG,MAX(SCORE)asMAX,MIN(SCORE)asMIN+FROMSCOREWHERECOURSE=+i_course_id.Text+);QJnfo.Open;o-num-total.TexC=Q-infoCOUNT,;o_score_max.Text:=Q_inforMAX,|;o_score_avg.Text:=Q_info(
37、AVG;o_score_min.Text:=Q_inforMIN;QJnfo.Close;QJnfo.SQL.Clear;添加统计语句显示学生总人数最高成果平均成果最低成果Q_info.SQL.Add(SELECTCOUNT(STUDENT)asCOUNTFROMSCORE+WHERECOURSE=,M+i_courseJd.Text+n+,ANDSCORE60,);统计不合格的人数QJnfo.Open;o_num_failed.Text:=Q_info|COUNT;显示不及格人数endelseAPPIiCatiOn.MessageBoxC请确认课程编号:错误的编号:MB_OK);end;中断
38、程序退出,代码如下:procedureTF_mainJwc.FormClose(Sender:TObject;varAction:TCloseAction);beginF_Login.LuserText:=;登录界面清空F_Login.i_passwd.Text:-*;Close;释放end;4.4 学生选课管理界面:退出时清空己选课程,代码如下:procedureTF_main_st.FormClose(Sender:TObject;varAction:TCloseAction);beginF_Login.LusenText:=;登录界面清空F_Login.i_passwd.Text:=;F
39、_main_st.Close;释放end;在TabSheeu中OnShOW事务处理程序中进行初始化,代码如下:procedureTF_main_st.TabSheet1Show(Sender:TObject);/创始化beginQ_course_selected.Close;关闭已选课程表设置参数打开己选课程查询关闭总学分查询设参打开总学分查询Q_course_selected.Params0.AsString:=F_login.i_user.Text;Q_course_selected.Open;Q_total_credit_hour.Close;Q_lotal_credit_hour.Pa
40、rams|0|.AsString:=F_login.i_user.Text;Q_total_credit_hour.Open;end;输入课程编号后,B_show的OnCIick事务处理程序来显示相N课程信息:procedureTF_main_st.B_showClick(Sender:TObject);/儆入编号,查询beginT-courseJnfo.FilteE=,ID=+LcourseJd.Text+条件andSTATE=,3m;T_course_infb.Filtered:=True;“激活过漉器T_course_info.Open;打开课程信息表T_teacher.Open;打开老
41、师表end;将课程加入选课列表的操作在B_add的OnClick事务处理程序中,代码如下:加入选课列表打开计数器表提取计数值推动计数值修改计数器纪录保存当前计数提交修改推断procedureTF_main_st.B_addClick(Sender:TObject);varCounteninteger;begin;/修改计数值T_counter_X.Open;counter:=T_counter_XCOUNTER_VALUE;Inc(counter);T_counter_X.Edit;T-counter.X,COUNTER-VALUET=counter;T_counter_X.Post;添加课程
42、ifT_course_infb.Activeand(T_course_infb.RecordCount=1)thenbeginWithQ_selectdobeginClose;SQL.Clear;SQL.AddCINSERTINTOCOURSE.SELECT);/鼐入SQL.Add(,(ID,COURSE,STUDENT),);SQL.Add(,VALUES(,+IntToStr(counter)+,u+i_course_id.Texl+,+FOgin.ijser.Texl+););追加ExecSQL;end;TabSheetlShow(nil);endelseAPPliCalion.Mess
43、ageBoxC课程编号有误出错,MBJ3K);end;删除当前选中的课程在B_del的OnClick事务处理程序中实现,代码如下:procedureTF_main_st.B_delClick(Sender:TObject);删除当前选中的课程beginWithQ_selectdobeginClose;SQL.Clear;SQL.AddCDELETEFROMCOURSE.SELECT,);/颂加删除语句SQLAddCWHEREID=,+IntToStr(Q.course.selected.FieldValues,SEL.ID,)+);删除ExecSQL;end;TabSheetlShow(nil);end;