您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 程序设计规范(Delphi)
程序设计规范(Delphi)1.概述:1.1.编写目的本规范规定了YUNTONG-TECH程序在编写过程中涉及到的程序文件和编码风格。本规范以Delphi语言为标准制定,使用其它编程语言的编码风格和规范在相关的文档中规定。1.2.参考资料(1)程序员指南,MicrosoftPress(2)Windows界面应用程序设计指南,MicrosoftPress(3)Delphi5开发人员指南,机械工业出版社(4)程序设计规范VB,聂俊华,北航十四系2.程序文件1.1.项目文件的组织在Delphi中,按照项目为单位来组织程序文件。在一个典型的项目中包括:(1)项目文件(.DRP文件)含有工程主程序的Pascal源代码;(2)单元文件(.PAS文件)项目中每个窗体的Pascal源文件,包含该窗体的所有声明和过程(包括时间处理过程);(3)窗体文件(.DFM文件)含有一个窗体的设计属性的二进制文件,每个窗体的.DFM文件与.PAS文件相互对应;(4)资源文件(.RES文件)编译的二进制资源文件,被链接到应用程序的可执行文件中;(5)项目选项文件(.DOF文件)存储了Project|Options菜单命令所设置的项目选项;(6)桌面设置文件(.DSK文件)存储了Tools|Options菜单命令所设置的桌面选项;(7)包文件(.DPK/.BPL文件)用于共享组件、类、数据和代码的文件。源文件为.DPK文件,编译后为.BPL文件;每个软件项目应使用独立的目录,软件项目下的不同类别文件、不同模块分设子目录。以下给出软件项目及软件模块中,设置子目录名称的规范:子目录说明\Bin建立产品的工作目录,存放项目中所有可执行文件的当前版本。\Lib与项目有关的库文件。\Man包括项目的所有外部文档。包括手册、帮助文件、其他在线文档、README文件以及其他将和产品一起发放到用户手中的文档。\SQL存放数据库的SQL文件(只针对数据库程序的开发)。\Res包括应用程序的所有共享资源,如ICON(图表)、资源文件、Bitmap等。\Include公用的窗体或Unit。\Control存放项目内用的自编或第三方提供的控件。\Source程序源代码\Public可以公用的模块或程序。本规范在以下的各小节中具体说明Delphi两种文件类型.PAS和.DFM在程序文件中的相关内容要求。1.2.常量定义内容:l逻辑值的定义;l常数值的定义;l错误码的定义;格式:一个定义占一行。如下:Const常量:类型=值;//注释说明:使用Const语句来声明用于代替文字值的常数。示例:ConstC_SQL:string='selectCH_USERER_IDfromT_CD_USER';//查询用户IDConstC_PI:real=3.1415926;//圆周率1.3.结构类型定义内容:结构类型定义格式:Type类型名//结构说明注释变量名1:变量类型;//变量说明注释变量名2:变量类型;//变量说明注释…End;说明:类型名是以大写字母开头的字符串。结构定义中定义变量类型的语句从第二行第五列开始。示例:typeTableList=record//系统树单元类型定义InID:integer;//单元编号Name:string;//单元名称PID:string;//上一级单元名称PT:PTableList;//指向下一单元类型的指针end;3.程序风格程序风格规定了每个语句的定位规则及程序中的注释。1.1.函数(Function)/过程(Procedure)风格Name(变量:变量类型[,…]);//函数/过程说明Var变量1:变量类型;//变量说明变量2:变量类型;//变量说明…Begin语句;语句;…End;注:变量声明、语句均从第三列写起,如有缩进,每次缩进两列,并与相对应语句对齐。1.2.语句风格说明:l在程序体中通常最多每十行有一个段落功能说明;l规范使用各种语句;l语句中有缩进是以二列为单位。1.2.1.变量定义语句Varvar_name:数据类型;1.2.2.赋值语句var_name:=表达式;1.2.3.条件语句If条件Then//注释Begin语句;…End;ElseIf条件Then//注释Begin语句;...EndElse//注释语句;注:如果执行语句只有一句,可省略Begin、End语句。1.2.4.循环语句l//循环功能注释Forcounter:=startToendDoBegin[语句];…End;l//循环功能注释While[condition]DoBegin[语句];…End;l//循环功能注释Repeat[语句];….Until[condition]1.2.5.开关语句//开关功能说明Case表达示Of值1:[语句1];值2:[语句2];…值n:[语句n]End;1.3.注释行在程序代码单元文件顶端必须拥有本单元文件“模块说明”及“单元说明”注释。对于常量、结构类型、函数/过程、自定义变量、代码段功能块、关键语句等有含义的代码部分,必须有注释行进行详细说明。注释行可在需说明部分行后以“//XXXXXXXX”方式添加,也可在需说明部分行上以“{XXXXXXXXXX}”方式添加多行或以“//XXXXXX”方式添加一行。4.变量名命名规则命名包括对程序中文件、变量(包括控件等对象)、常量、过程和函数等程序对象的命名。本公司命名以匈牙利规则为参考,采用“限制+类型+名称”的命名方式。l限制是指变量与常量的区分和对作用域的确定,默认为变量和局部对象。对于常量要特指出,对于非局部变量,要表明其使用范围,如全局或模块级。l类型以缩写表明该程序对象的类型,如32位有符号整数类型和列表框控件类型。l名称为对象的具体含义,要准确表达其用途,而不要使用与变量所代表的实体没有任何系的名字,以英文、英文缩写组合给出;名称的书写采用大小写结合的方式,如CaseCount表示事件计数、DeleteUser表示删除人员等。命名不宜过短,也不宜过长,除去限制和类型外,以8~15为好。过短的命名往往不能准确描述用意,如nCount命名含义太不明确,可以是雇员的计数,也可以是找到的文件的计数,而命名为nEmployeeCount和nFileCount将更有助于记忆和理解;过长的命名如recLoginUserInformation又显得冗长,改为recLoginUserInfor或recLoginUserInfo则会在不损失含义的情况下减少输入量,换言之,改动后的命名更合适。命名中恰当使用反意词,可以提高可读性,下面是一些常用的容易理解的词对:Add/RemoveBegin/EndCreate/DestroyInsert/DeleteFirst/LastGet/ReleaseGet/SetGet/PutIncrement/DecrementLock/UnlockMin/MaxNext/PreviousNext/PriorOld/NewOpen/CloseShow/HideSource/DestinationSource/TargetStart/StopWrite/Read记住一些常见布尔型变量的命名,对规范化的实施也会有不少帮助,如Done、Error、Found、Success、Ready等命名中的特例之一是单层循环的循环变量,使用i、j、k、l、m命名,简捷明快;当循环为多层时,各层的循环变量应尽可能命以有意义的名称,以避免使用时由于输入而产生的逻辑错误,尤其是在访问多维数组变量时,这种作法可以大大减少因数组下标指定失误引发的程序逻辑失败的机率,如将Cells[i,j]误作Cells[j,i],而Cells[nRow,nCol]就不易误为Cells[nCol,nRow]。以下定义Delphi中的变量命名规则:1.1.变量命名1.1.1.简单变量命名类型缩写含义BooleanbBoolean变量ByteBoolbbBooleanByte变量WordBoolbwBooleanWord变量LongBoolblBooleanLong变量IntegernNumber变量ShortIntntNumberTiny变量SmallIntnsNumberShort变量LongIntnlNumberLong变量Int64neNumberExtended变量CompneNumberExtended变量ByteuntUnsignedNumberTiny变量WordunsUnsignedNumberShort变量LongWordunlUnsignedNumberLong变量RealfFloat变量SinglefsFloatSingle变量DoublefdFloatDouble变量ExtendedfeFloatExtended变量CharcChar变量AnsiCharcaCharAnsi变量WideCharcwCharWide变量StringsString变量ShortStringssStringShort变量AnsiStringsaStringAnsi变量WideStringswStringWide变量VariantvVariant变量EnumerateeEnumerate变量PointerpPointer变量1.1.2.结构型变量命名类型缩写含义ArrayaArraySetmMassRecordrRecordClassoObject1.1.3.复合变量命名命名中有些缩写词是基础类型缩写,而另有一些是类型限定词,如u代表Unsigned和a代表Array。整体缩写采用从右至左的分析方式,举例如下:lBoolean数组命名为abXXXXl单精度附点数数组命名为afsXXXXl结构数组命名为arXXXXl枚举数组命名为aeXXXXl指针数组命名为apXXXXl字符集合命名为mcXXXXl32位整数集合数组命名为amnXXXXl结构指针命名为prXXXXlPChar命名为pszXXXXlPChar数组命名为apszXXXX1.1.4.命名中限制的法则l全局冠以g_l模块级冠以m_l常量以C_开始l全局常量以gC_开头,模块级常量则mC_1.1.5.其它命名l类型的命名采用Delphi通用的TXxxxYyyyZzzz形式l枚举型变量的元素命名为以小写的类型英文名字母缩写开始,如TFontStyle=(fsBold,fsItalic,...)l类型常量命名为C_类型缩写_XxxxYyyy形式,无类型常量命名为C_含义或分组名_XxxxYyyy。其中XxxxYyyy要描述常量含义,可以归为一类的常量;有时Xxxx说明分组含义,而Yyyy为常量含义,如C_FontSizeBig=20,C_FontSizeNormal=12,C_FontSizeSmall=8。举例:C_as_FileNames:array[0..2]ofstring=(‘C:\AUTOEXEC.BAT’,‘C:\CONFIG.SYS’,‘C:\IO.SYS)和gC_MaxUsers=500分别定义了“局部一维字符串数组常量”和“全局常数”。1.2.文件及窗体命名含义类名命名格式工程文件Program(.DPR)XXXX_P单元Unit(PAS)XXXX_U窗体Form.Name(.DFM)XXXX_F数据模块DataModuleXXXX_DM1.3.控件命名1.3.1.Standard页控件类名命名格式TMainMenummnuXXXXTPopupMenupmnuXXXXTLabellblXXXXTEditedtXXXXTMemommoXXXXTButtonbtnXXXXTCheckBoxchkXXXXTRadioButtonrdbtXXXXTListBoxlbxXXXXTComboBoxcbxXXXXTScrollBarscbrXXXXTGroupBoxgbxXXXXTRadioGrouprgpXXXXTPanelpnlXXXXTActionListactsXXXX1.3.2.Additional
本文标题:程序设计规范(Delphi)
链接地址:https://www.777doc.com/doc-3156478 .html