浅谈Delphi程序文件的组成及应用贾志军(摘要:delphi是一门很好的可视化编程工具,为更好的让一些初级入门的开发人员了解这门技术,本文从最基础的工程文件的组成、窗体单元文件代码内各个部分的组成讲起,最后附带一个总结性实例,让初级开发人员更深入的学习了解delphi开发工具。关键词:delphi工程文件、单元文件、窗体文件(HebeiElectronic&InformationTechnologyAcademy,ShijiazhuangHebei050071,China)Abstract:delphiisagoodvisualprogrammingtoolfordevelopersoftheprimaryentryaboutthistechnology,thisarticlefromthecompositionofthemostbasicprojectfile,thefilecodeformunitpartcompositionofthetalk,andfinallywithasummaryinstance,theprimarydevelopersmorein-depthstudyandunderstandingofdelphidevelopmenttools.Keywords:delphiprojectfile,unitfiles,formfiles引言Delphi是一种面向对象的可视化的快速开发工具,以PASCAL语言作为基础,可以在windows、linux等平台上运行,新建一个新的工程,运行delphi,她就会生成一个全新的exe文件,这个文件不需要开发人员编写任何代码,就能脱离delphi环境而独立运行到其他平台上,厉害吧!这就是delphi的独到之处,也是她受欢迎的原因之一。一个Delphi工程所用到的文件较多,但主要由dpr(系统的工程文件)、pas(单元文件,存放源代码)、dfm(窗体文件)、dcu(编译后的单元文件)等文件组成。这些文件各自有各自的作用,编写时有他们的独立性,运行时又相互关联,下面分别介绍各个文件的代码部分的意义及其作用。一、系统工程文件新建一个工程,保存后工程文件dpr的内容显示到窗口中如下:programP_Emrp;usesForms,U_Xtdlin'U_Xtdl.pas'{F_Xtdl},U_Mainin'U_Main.pas'{F_Main},U_Dmodulein'U_Dmodule.pas'{DM_1:TDataModule},U_Xt_Xgmmin'U_Xt_Xgmm.pas'{F_Xt_Xgmm};{$R*.RES}beginApplication.Initialize;Application.CreateForm(TDM_1,DM_1);Application.CreateForm(TF_Main,F_Main);Application.Run;end.Program开头后面是工程文件名称,接着出现工程文件引用的单元,包括delphi的标准单元和用户自定义的单元,{$R*.RES}指出资源文件的名称扩展名是res,该资源文件保存了工程文件的图标等其他资源,begin后面程序首先创建DM_1、f_main窗体,完成后执行run命令,一个f_main窗体就运行起来了。二、单元文件组成单元部分结构包括四部分:接口部分、实现部分、单元初始化部分、终结部分,程序运行后自动编译成dcu文件。1、接口部分Interface:该部分由字母interface开头,结尾于字母implementation,它的作用主要是用来声明引用的unit单元部分,各种数据类型,定义的变量,常量,过程和函数等,在Interface内进行声明的变量,常量,过程,数据类型,函数都可以在外部进行访问,对整个工程而言也是公有的.对所有引用该单元的其他单元(或窗体)来说,上面的声明都是可以访问的。在Interface中的部分,只需要写出过程和函数的名称及定义的参数,具体的定义的详细内容是在下面的implementation部分写出的。Interface单元部分又可分为多个可选择的部分,它分别为单元引入部分(uses),定义常量部分,定义类型部分,定义变量说明部分,定义过程和定义函数声明部分。2、实现部分:Implementation中内容分为两部分:一、是声明部分,包括单元引用,自定义常量,自定义类型,自定义变量,自定义过程和自定义函数的声明,这一点和Interface部分类似,不同之处有2点:(1)在Implementation中声明的只对本单元是公用变量,其他单元即便引用了该单元,也不能使用它们。(2)在Implementation中定义的过程和函数,不需遵守先声明后定义的规则,而可以直接写出过程和函数的定义。而另一部分是在Interface部分声明的过程与函数的定义。3、单元初始化部分:主要是工程初始化该库单元的入口,该处的代码部分最先执行,很像主程序中的begin…end,如主程序引用了多个单元,可按主程序定义的uses顺序,逐个将单元初始化的工作完成。4、终结部分:主要用于释放Initialization部分分配的内存资源。此部分是可选部分,如初始化部分分配了资源,则必须有终结部分,一般的,终结部分释放的顺序与单元创建时的顺序正好相反。三、窗体文件窗体设计完成后,delphi自动形成两个文件:dfm文件、pas文件,以pas单元文件为主,共同形成一个窗体单元文件,这些文件与纯粹的代码单元文件有一些区别,窗体文件定义了TForm类,和变量名TF_Xtdl,并在implementation部分定义了窗体的界面文件名,如把{$R*.DFM}去掉,该窗体就不显示了。综合以上介绍,新建一个登录窗体,共有两个文件组成:U_Xtdl.pas、U_Xtdl.dfm自动编译后形成U_Xtdl.dcu。四、delphi的应用:综合以上的学习,用delphi编写一个【股金管理系统】的登录窗体,主要功能实现如下:1、用户输入用户名、密码,输入都正确后进入主界面。2、如果用户输入的用户名不正确,提示“没有此用户,请重新输入”。3、如果用户名存在,密码不正确提示“密码输入错误,请重新输入”。U_Xtdl.pas单元代码如下:unitU_Xtdl;interfaceusesWindows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,ExtCtrls,Buttons,Db,ADODB;typeTF_Xtdl=class(TForm)Bit_ok:TBitBtn;bit_close:TBitBtn;Image1:TImage;ADOQuery1:TADOQuery;ADOQuery2:TADOQuery;Bevel1:TBevel;Label3:TLabel;Label4:TLabel;Label2:TLabel;Label1:TLabel;edt_mm:TEdit;Bevel2:TBevel;Edt_yhm:TEdit;procedurebit_closeClick(Sender:TObject);procedureBit_okClick(Sender:TObject);private{Privatedeclarations}public{Publicdeclarations}end;varF_Xtdl:TF_Xtdl;implementationusesU_Dmodule,U_Gyhs,U_Main;{$R*.DFM}procedureTF_Xtdl.bit_closeClick(Sender:TObject);beginhalt;end;procedureTF_Xtdl.Bit_okClick(Sender:TObject);varLs_Sql:string;beginLs_Sql:='select*fromxt_dlwherebh='''+Edt_yhm.Text+'''';MyExecSql(ADOQuery1,true,Ls_Sql);ifADOQuery1.RecordCount=0thenbeginmessagebox(handle,'没有此用户,请重新输入。','提示',MB_OK+MB_ICONINFORMATION);Edt_yhm.SetFocus;endelsebeginLs_Sql:='select*fromxt_dlwherebh='''+Edt_yhm.Text+'''andmm='''+edt_mm.text+'''';MyExecSql(ADOQuery2,true,Ls_Sql);ifADOQuery2.RecordCount=0thenbeginmessagebox(handle,'密码输入错误,请重新输入。','提示',MB_OK+MB_ICONINFORMATION);edt_mm.SetFocus;endelsebeginGs_CzyBh:=ADOQuery2.fieldbyname('bh').asstring;Gs_CzyXm:=ADOQuery2.fieldbyname('mc').asstring;F_Main.ShowModal;F_Xtdl.Close;end;end;end;end.窗体界面如下:图1股金管理系统登录界面Figure1capitalstockmanagementsystemloginscreen五、小结:学习了这些文件的组成及其作用,使我们了解到用delphi开发cs结构的系统是比较好的选择,它不像vb、pb可视化编程需要一堆dll文件作为环境,在开发过程中它会自动生成一部分系统代码,这就使得程序员减少了很多不必要的麻烦,我们上述学习的只是delphi最基本的基础知识,许多更深入的知识等待这我们去学习,同时我也相信delphi产品的更新也会满足时代的发展,为我们以后多彩的生活释放出光芒!作者简介:姓名:性别:男出生年月民族:汉族学历:职称:助理工程师通信地址:籍贯:单位:联系电话:Email: