1、3.4.3. 变量 73.4.4. 常量 83.4.5. 类 83.4.6. 控件 83.5. 修改规范 113.5.1. 新增代码行 113.5.2. 删除代码行 113.5.3. 修改代码行 111.目的统一规范DELPHI的编码风格和标准。2.适用范围适用于所有用DELPHI语言开发的项目。3.编码范规注:标有 的条目为强制检查项。3.1.文件1) 项目文件必须使用一个有意义的名字并且以Prj打头。例如:Delphi中系统的项目文件被命名为 PrjSysInfo.dpr。2) unit文件使用Unit作为前缀。 通常的unit 被命名为UnitGeneral。3) Form unit 文
2、件的名字必须和Form的名称保持一致。主窗体叫frmMain 则Form Unit文件的名字为UnitfrmMain。4) Data Module unit 文件的名字必须和Data Module的名称保持一致。主Data Module叫DMMain,则Data Module Unit文件的名字为UnitDMMain。5) 公共单元统一命名为UnitPublic.pas。6) 对于文件的目录要按如下结构来创建:-SQL(脚本文件目录)-DOC(文档目录)-Hlp(帮助文件目录)-SRC(源码文件目录)-PROJECT(项目工程文件目录)-BIN(EXE输出目录)-DCU(DCU输出目录)3.2
3、.注释1)注释可以采用和/两种注释符号,但是涉及到多行注释时尽量使用。2) 对于一行代码的注释可放在前一行及本行上,不允许放在下一行,更不允许在一行语句的中间加入注释。3) 单元文件的文件头注释说明应按如下格式:* Copyright (c) 2008-2011 福建星网视易信息系统有限公司 unit UnitfrmCustomer;*=*系统名称:精通管理系统*单元名称:会员信息维护*单元作者:xxxx*功能描述:主要是进行会员信息的增加修改和删除以会员信息的写卡和刷卡操作。*修改记录:* 李明 2010-07-01 创建该单元 仅记录功能修改,bug修改不记录* 张山 2011-08-02
4、 会员查询增加按会员卡号查询的条件4) 不必每行都加注释,在310行左右的段落做注释要好于每行都做注释,显而易见的代码不加注释。if (ErrorCode 0) then /执行过程失败 无用的注释beginShowMessage(保存员工信息失败!);end;3.3.编码排版格式1) 代码的缩进应使用空格(SPACE),不能使用制表符(TAB),并且缩进以2字符为单位。2) begin语句和end语句在源程序中要独占一行。例如:/不正确的用法for i := 0 to 10 do begin/正确的用法= 0 to 10 do 3) 空格的使用:a)关键字与其后的表达式之间要有空格,如:if
5、 (expr) 或while (expr) b)单目操作符不应与它们的操作数分开(如和)。c)除.外,其它双目操作符应与它们的操作数用空格隔开。i:=i+1; /错误的写法,操作符两端没有空格i := i + 1; /正确的写法if(ab) then /错误的用法,逻辑判断符号两端没有空格if (a b) then /正确的用法4) 每行只能有一个语句。/不正确写法a := a + 1; sum := sum + a;/正确写法:sum :5) 一个过程或函数结束后,后续语句要隔一空行。procedure GetMax():Integerresult := MaxValue;一个过程或函数结束
6、后,后续语句要隔一空行procedure GetMin():= MinValue;6)每行的代码不允许超出一个屏幕的宽度。3.4.命名规范3.4.1.保留字 Object Pascal 语言的保留字或关键词应全部使用小写字母,除下表中保留字外,private、protected、public、published 和automated 在对象类型说明中也作为保留字使用,at 和on 也有特殊意义。andarrayasasmcaseclassconstconstructordestructordispinterfacedivDodowntoelseendexceptexportsfilefinal
7、izationfinallyforfunctiongotoifimplementationininheritedinitializationinlineinterfaceislabellibrarymodnilnotobjectoforoutpackedprocedureprogrampropertyraiserecordrepeatresourcestringsetshlshrstringthenthreadvartotrytypeunituntilusesvarwhilewithxor3.4.2.过程和函数1) 程和函数的名称应全部使用有意义的单词组成,并且所有单词的第一个字母应该使用大写
8、字母。procedure formatharddisk; /不正确的命名procedure FormatHardDisk; /正确的命名2) 类变量内容的过程和函数应使用Set作为前缀,读取变量内容的过程和函数应使用Get作为前缀。procedure SetUserName;function GetUserName: string;3)同一类型的参数写在同一句中,例如:procedure Foot(Param1, Param2, Param3: integer; Param4: string);所有参数必须是有意义的;并且当参数名称和其它属性名称重了的时候,加一个前缀A。procedure S
9、omeProc(AUserName: AUserAge: integer);3.4.3.变量1) 变量必须起有意义的名字,使其它组员可以很容易读懂变量所代表的意义,变量命名可以采用同义的英文命名,可使用几个英文单词,但每一单词的首字母必须大写。VarWriteFormat::string;2)同时对于一些特定类型可采用一定的简写如下:指针类型 P纪录类型Rec数组类型Arr循环控制变量通常使用单一的字符如:i, j, 或 k。 另外使用一个有意义的名字例如:UserIndex ,也是准许的。3) 尽量不使用全局变量,如必须使用全局变量则必须加前缀Pub_,同时应在变量名称中体现变量的类型。Pu
10、b_PrecUserCount: point; /名称为UserCount的全局变量,其类型为指向一结构的指针4) Form类和Data Modules Forms类的实例化变量命名应与其去掉T的名字相一致。frmAbout: TfrmAbout; 类TfrmAbout的实例化变量为frmAbout DMCustomer: TDMCustomer; 类TDMCustomer的实例化变量为DMCustomer3.4.4.常量1) 避免在程序中直接出现常数,使用超过一次的常数应以宏定义或变量的常数形式来进行替代。2)常数的宏定义应与它实际使用时的类型相一致。如以2.0来定义浮点类型,用2表示整型。
11、3) 常量的命名应当能够表达出它的用途,并且要求用大写字母表示。const PI = 3.1415926;const TIMEOUT = 100;3.4.5.类1) 类的名字必须有意义并且类型的名字之前要加前缀T。TCustomer = class(TObject)2) 类中定义的变量名字必须有意义并且在名字之前要加前缀F,所有的变量必须是私有的。如果需要从外部访问此变量则需要声明其属性。3) 属性的名称要同其用于操作的去前缀F的类变量名称相一致。4) 所有的属性访问方法必须出现在private 或 protected 中。属性访问方法的命名同函数和过程的命名另外读方法(reader meth
12、od)必须使用前缀Get. 写方法(writer method)必须使用前缀Set。写方法的参数必须命名为Value,其类型同所要写的属性相一致。TSomeClass = class(TObject)privateFSomeField: Integer; FSomeField去”F”后跟SomeField相一致protectedfunction GetSomeField:procedure SetSomeField( Value: Integer);publicproperty SomeField: Integer read GetSomeField write SetSomeField;5) Form类命名使用Tfrm作为前缀。TfrmAbout = class(TForm)TfrmMain = class(TForm)6) Data Modules
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1