程序员培训-Delphi编码规范.doc_第1页
程序员培训-Delphi编码规范.doc_第2页
程序员培训-Delphi编码规范.doc_第3页
程序员培训-Delphi编码规范.doc_第4页
程序员培训-Delphi编码规范.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DELPHI编码规范福建星网视易信息系统有限公司更新记录:版本作者日期内容V1.0孙忠好2011-7-3编码规范初稿V1.1 孙忠好211-07-29讨论会后的修改 目录1.目的42.适用范围43.编码范规43.1.文件43.2.注释43.3.编码排版格式53.4.命名规范63.4.1.保留字63.4.2.过程和函数73.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 文件的名字必须和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. 注释1) 注释可以采用和/两种注释符号,但是涉及到多行注释时尽量使用。2) 对于一行代码的注释可放在前一行及本行上,不允许放在下一行,更不允许在一行语句的中间加入注释。3) 单元文件的文件头注释说明应按如下格式:* Copyright (c) 2008-2011 福建星网视易信息系统有限公司 *unit UnitfrmCustomer; *=*系统名称:精通管理系统*单元名称:会员信息维护*单元作者:xxxx*功能描述:主要是进行会员信息的增加修改和删除以会员信息的写卡和刷卡操作。*修改记录:* 李明 2010-07-01 创建该单元 仅记录功能修改,bug修改不记录* 张山 2011-08-02 会员查询增加按会员卡号查询的条件4) 不必每行都加注释,在310行左右的段落做注释要好于每行都做注释,显而易见的代码不加注释。例如:if (ErrorCode 0) then /执行过程失败 无用的注释beginShowMessage(保存员工信息失败!);end;3.3. 编码排版格式1) 代码的缩进应使用空格(SPACE),不能使用制表符(TAB),并且缩进以2字符为单位。2) begin语句和end语句在源程序中要独占一行。例如: /不正确的用法for i := 0 to 10 do beginend;/正确的用法for i := 0 to 10 do beginend; 3) 空格的使用:a) 关键字与其后的表达式之间要有空格,如:if (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;/正确写法:a := a + 1;sum := sum + a;5) 一个过程或函数结束后,后续语句要隔一空行。例如:procedure GetMax():Integerbeginresult := MaxValue;end;一个过程或函数结束后,后续语句要隔一空行procedure GetMin():Integerbeginresult := MinValue;end;6) 每行的代码不允许超出一个屏幕的宽度。3.4. 命名规范3.4.1. 保留字Object Pascal 语言的保留字或关键词应全部使用小写字母,除下表中保留字外,private、protected、public、published 和automated 在对象类型说明中也作为保留字使用,at 和on 也有特殊意义。andarrayasasmbegincaseclassconstconstructordestructordispinterfacedivDodowntoelseendexceptexportsfilefinalizationfinallyforfunctiongotoifimplementationininheritedinitializationinlineinterfaceislabellibrarymodnilnotobjectoforoutpackedprocedureprogrampropertyraiserecordrepeatresourcestringsetshlshrstringthenthreadvartotrytypeunituntilusesvarwhilewithxor3.4.2. 过程和函数1) 程和函数的名称应全部使用有意义的单词组成,并且所有单词的第一个字母应该使用大写字母。例如:procedure formatharddisk; /不正确的命名procedure FormatHardDisk; /正确的命名2) 类变量内容的过程和函数应使用Set作为前缀,读取变量内容的过程和函数应使用Get作为前缀。例如:procedure SetUserName;function GetUserName: string;3) 同一类型的参数写在同一句中,例如:procedure Foot(Param1, Param2, Param3: integer; Param4: string);所有参数必须是有意义的;并且当参数名称和其它属性名称重了的时候,加一个前缀A。例如:procedure SomeProc(AUserName: string; AUserAge: integer);3.4.3. 变量1) 变量必须起有意义的名字,使其它组员可以很容易读懂变量所代表的意义,变量命名可以采用同义的英文命名,可使用几个英文单词,但每一单词的首字母必须大写。例如:VarWriteFormat::string;2) 同时对于一些特定类型可采用一定的简写如下:指针类型 P纪录类型Rec数组类型Arr循环控制变量通常使用单一的字符如:i, j, 或 k。 另外使用一个有意义的名字例如:UserIndex ,也是准许的。3) 尽量不使用全局变量,如必须使用全局变量则必须加前缀Pub_,同时应在变量名称中体现变量的类型。例如:Pub_PrecUserCount: point; /名称为UserCount的全局变量,其类型为指向一结构的指针4) Form类和Data Modules Forms类的实例化变量命名应与其去掉T的名字相一致。例如:varfrmAbout: TfrmAbout; 类TfrmAbout的实例化变量为frmAbout DMCustomer: TDMCustomer; 类TDMCustomer的实例化变量为DMCustomer3.4.4. 常量1) 避免在程序中直接出现常数,使用超过一次的常数应以宏定义或变量的常数形式来进行替代。 2) 常数的宏定义应与它实际使用时的类型相一致。如以2.0来定义浮点类型,用2表示整型。3) 常量的命名应当能够表达出它的用途,并且要求用大写字母表示。例如:const PI = 3.1415926;const TIMEOUT = 100;3.4.5. 类1) 类的名字必须有意义并且类型的名字之前要加前缀T。 例如:typeTCustomer = class(TObject)2) 类中定义的变量名字必须有意义并且在名字之前要加前缀F,所有的变量必须是私有的。如果需要从外部访问此变量则需要声明其属性。3) 属性的名称要同其用于操作的去前缀F的类变量名称相一致。4) 所有的属性访问方法必须出现在private 或 protected 中。属性访问方法的命名同函数和过程的命名另外读方法(reader method)必须使用前缀Get. 写方法(writer method)必须使用前缀Set。写方法的参数必须命名为Value,其类型同所要写的属性相一致。例如:TSomeClass = class(TObject)privateFSomeField: Integer; FSomeField去”F”后跟SomeField相一致protectedfunction GetSomeField: Integer;procedure SetSomeField( Value: Integer);publicproperty SomeField: Integer read GetSomeField write SetSomeField; end;5) Form类命名使用Tfrm作为前缀。例如: TfrmAbout = class(TForm)TfrmMain = class(TForm)6) Data Modules Forms类的命名应使用 TDM作为前缀。例如:TDMCustomer = class(TDataModule)TDMOrders = class(TDataModule)3.4.6. 控件1) 控件的变量命名格式为:简写+名称,如:用户输入的TEdit控件的命名为edtUsername。控件的名称简写列表如下:Standard Tab简写控件mmTMainMenupmTPopupMenummiTMainMenuItempmiTPopupMenuItemlblTLabeledtTEditmemTMemobtnTButtoncbTCheckBoxrbTRadioButtonlbTListBoxcbTComboBoxscbTScrollBargbTGroupBoxrgTRadioGrouppnlTPanelclTCommandListAdditional Tab缩写控件bbtnTBitBtnsbTSpeedButtonmeTMaskEditsgTStringGriddgTDrawGridimgTImageshpTShapebvlTBevelsbxTScrollBoxclbTCheckListboxsplTSplitterstxTStaticTextchtTChartWin32 Tab缩写控件tbcTTabControlpgcTPageControlilTImageListreTRichEdittbrTTrackBarprbTProgressBarudTUpDownhkTHotKeyaniTAnimatedtpTDateTimePickertvTTreeViewlvTListViewhdrTHeaderControlstbTStatusBartlbTToolBarclbTCoolBarSystem Tab缩写控件tmTTimerpbTPaintBoxmpTMediaPlayerolecTOleContainerddccTDDEClientConvddciTDDEClientItemddscTDDEServerConvddsiTDDEServerItemData Access Tab缩写控件dsTDataSourcetbl TTableqry TQuerysp TStoredProcdb TDataBasessnTSessionbm TBatchMoveusql TUpdateSQLData Controls Tab缩写控件dbgTDBGriddbn TDBNavigatordbt TDBTextdbe TDBEditdbm TDBMemodbi TDBImagedblb TDBListBoxdbcb TDBComboBoxdbch TDBCheckBoxdbrg TDBRadioGroupdbll TDBLookupListBoxdblc TDBLookupComboBoxdbre TDBRichEditdbcg TDBCtrlGriddbch TDBChartDialogs Tab缩写控件OpenDialog TOpenDialogSaveDialogTSaveDialogOpenPictureDialogTOpenPictureDialogSavePictureDialogTSavePictureDialogFontDialogTFo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论