




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,规范简介本规范主要规定DELPHI源程序在书写过程中所应遵循的规则及注意事项。编写该规范的目的是使公司软件开发人员的源代码书写习惯保持一致。这样做可以使每一个组员都可以理解其它组员的代码,以便于源代码的二次开发记忆系统的维护。2,一般格式规范21缩进缩进就是在当源程序的级改变时为增加可读性而露出的两个空格。缩进的规则为每一级缩进两个空格。不准许使用TAB。因为TAB会因为用户所作的设置不同而产生不同的效果。当遇到BEGIN或进入判断、循环、异常处理、WITH语句、记录类型声明、类声明等的时侯增加一级,当遇到END或退出判断、循环、异常处理、WITH语句、记录类型声明、类声明等的时侯减少一级。例如IFTMPINT100THENTMPINT10022BEGINENDBEGIN语句和END语句在源程序中要独占一行,例如FORI0TO10DOBEGIN/不正确的用法ENDFORI0TO10DO/正确的用法BEGINEND23空格在操作符及逻辑判断符号的两端添加空格,例如II1,AANDB等,但添加括号时不需要空格。例如IFABTHEN/错误的用法IFABTHEN/正确的用法又例如PROCEDURETESTPARAM1INTEGERPARAM3STRING3OBJECTPASCAL语法书写格式规范31保留字OBJECTPASCAL语言的保留字或关键词应全部使用小写字母。32过程和函数321命名及格式过程和函数的名称应全部使用有意义的单词组成,并且所有单词的第一个字母应该使用大写字母。例如PROCEDUREFORMATHARDDISK/不正确的命名PROCEDUREFORMATHARDDISK/正确的命名设置变量内容的过程和函数,应使用SET作为前缀,例如PROCEDURESETUSERNAME读取变量内容的过程和函数,应使用GET作为前缀,例如FUNCTIONGETUSERNAMESTRING322过程和函数的参数3221命名统一类型的参数写在同一句中PROCEDUREFOOPARAM1,PARAM2,PARAM3INTEGERPARAM4STRING3222命名所有参数必须是有意义的;并且当参数名称和其它属性名称重了的时候,加一个前缀A,例如PROCEDURESOMEPROCAUSERNAMESTRINGAUSERAGEINTEGER3223命名冲突当使用的两个UNIT中包括一个重名的函数或过程时,那幺当你引用这一函数或过程时,将执行在USE子句中后声明的那个UNIT中的函数或过程。为了避免这种USESCLAUSEDEPENDENT需要在引用函数或过程时,写完整函数或过程的出处。例如SYSUTILSFINDCLOSESRWINDOWSFINDCLOSEHANDLE33变量331变量命名及格式首先所有变量必须起有意义的名字,使其它组员可以很容易读懂变量所代表的意义,变量命名可以采用同义的英文命名,可使用几个英文单词,但每一单词的首字母必须大写。例如VARWRITEFORMATSTRING;同时对于一些特定类型可采用一定的简写如下指针类型P纪录类型REC数组类型ARR类CLASS循环控制变量通常使用单一的字符如I,J,或K。另外使用一个有意义的名字例如USERINDEX,也是准许的。332局部变量在过程中使用局部变量遵循所有其它变量的命名规则。333全局变量尽量不使用全局变量,如必须使用全局变量则必须加前缀G,同时应在变量名称中体现变量的类型。例如GPRECUSERCOUNTPOINT/名称为USERCOUNT的全局变量,其类型为指向一结构的指针但是在模块内部可以使用全局变量。所有模块内全局变量必须用F为前缀。如果几个模块之间需要进行资料交换,则需要通过声明属性的方法来实现。例如TYPETFORMOVERDRAFTRETURNCLASSTFORMPRIVATEPRIVATEDECLARATIONSFUSERNAMESTRINGFUSERCOUNTINTEGERPROCEDURESETUSERNAMEVALUESTRINGFUNCTIONGETUSERNAMESTRINGPUBLICPUBLICDECLARATIONSPROPERTYUSERNAMESTRINGREADGETUSERNAMEWRITESETUSERNAMEPROPERTYUSERCOUNTINTEGERREADFUSERCOUNTWRITEFUSERCOUNTEND34类型341大小写协议保留字的类型名称必须全部小写。WIN32API的类型通常全部大写,对于其它类型则首字母大写,其余字母小写,例如VARMYSTRINGSTRING/RESERVEDWORDWINDOWHANDLEHWND/WIN32APITYPEIINTEGER/TYPEIDENTIFIERINTRODUCEDINSYSTEMUNIT342浮点类型尽量不使用REAL类型,他只是为了和旧的PASCAL代码兼容,尽量使用DOUBLE类型。DOUBLE类型是对处理器和数据总线做过最优化的并且是IEEE定义的标准数据结构。当数值超出DOUBLE的范围时,使用EXTENDED。但EXTENDED不被JAVE支持。但使用其它语言编写的DLL时可能会使用SINGLE类型。343枚举类型枚举类型的名字必须有意义并且类型的名字之前要加前缀T。枚举类型的内容的名字必须包含枚举类型名称的简写,例如TSONGTYPESTROCK,STCLASSICAL,STCOUNTRY,STALTERNATIVE,STHEAVYMETAL,STRB344数组类型数组类型的名字必须有意义并且类型的名字之前要加前缀T。如果声明一个指向数组类型的指针必须在该类型的名字之前加前缀P,例如TYPEPCYCLEARRAYTCYCLEARRAYTCYCLEARRAYARRAY1100OFINTEGER345记录类型记录类型的名字必须有意义并且类型的名字之前要加前缀T。如果声明一个指向数组类型的指针必须在该类型的名字之前加前缀P,例如TYPEPEMPLOYEETEMPLOYEETEMPLOYEERECORDEMPLOYEENAMESTRINGEMPLOYEERATEDOUBLEEND35类351命名及格式类的名字必须有意义并且类型的名字之前要加前缀T。例如TYPETCUSTOMERCLASSTOBJECT类实例的名字通常是去掉T的类的名字。例如VARCUSTOMERTCUSTOMER352类中的变量3521命名及格式类的名字必须有意义并且类型的名字之前要加前缀F。所有的变量必须是四有的。如果需要从外部访问此变量则需要声明一属性353方法3531命名及格式同函数和过程的命名及格式。3532属性访问方法所有的属性访问方法必须出现在PRIVATE或PROTECTED中。属性访问方法的命名同函数和过程的命名另外读方法READERMETHOD必须使用前缀GET写方法WRITERMETHOD必须使用前缀SET。写方法的参数必须命名为VALUE,其类型同所要写的属性相一致。例如TSOMECLASSCLASSTOBJECTPRIVATEFSOMEFIELDINTEGERPROTECTEDFUNCTIONGETSOMEFIELDINTEGERPROCEDURESETSOMEFIELDVALUEINTEGERPUBLICPROPERTYSOMEFIELDINTEGERREADGETSOMEFIELDWRITESETSOMEFIELDEND36属性361命名及格式同其用操作的,出去前缀F的类的变量的名称相一致。37文件371项目文件3711项目目录结构程序主目录BIN(应用程序所在路径)DB(本地数据库所在路径)DOC(文档所在路径)HLP(帮助文件所在路径)BACKUP(备份路径)TMP(临时文件路径)3712命名项目文件必须使用一个有意义的名字。例如DELPHI中系统信息的项目文件被命名为SYSINFODPR。372FORM文件3721命名同FORM的名称相一致例如FORM的名称为FORMMAIN则FORM文件的名称就为FORMMAINFRM。373DATAMODULE文件3731命名DATAMODULE文件的命名应该有意义,并且使用DM作为前缀。例如用户DATAMODULE被命名为DMCUSTOMERSDFM。374REMOTEDATAMODULE文件3741命名REMOTEDATAMODULE文件的命名应该有意义,并且使用RDM作为前缀。例如用户REMOTEDATAMODULE被命名为RDMCUSTOMERSDFM。375UNIT文件3751普通UNIT37511UNIT文件命名UNIT文件的命名应该有意义,并且使用UNIT作为前缀。例如通用UNIT被命名为UNITGENERAL。3752FORMUNITS37521命名FORMUNIT文件的名字必须和FORM的名称保持一致。例如主窗体叫FORMMAINPAS则FORMUNIT文件的名字为UNITFORMMAIN。3753DATAMODULEUNIS37531命名DATAMODULEUNIT文件的名字必须和DATAMODULE的名称保持一致。例如主DATAMODULE叫DMMAINPAS则DATAMODULEUNIT文件的名字为UNITDMMAIN。3754文件头在所有文件的头部应写上此文件的用途,作者,日期及输入和输出。例如修改日期作者用途本模块结构组成376FORMS和DATAMODULESFORMS3761FORM类1FORM类命名标准FORMS类的命名应该有意义,并且使用TFORM作为前缀。例如ABOUTFORM类的名字为TABOUTFORMCLASSTFORM主窗体的名字为TMAINFORMCLASSTFORM2FORM类实例的命名标准FORM的类实例的名字应同期掉T的FORM类的名字相一致。例如TYPENAMEINSTANCENAMETABOUTFORMABOUTFORMTMAINFORMMAINFORMTCUSTOMERENTRYFORMCUSTOMERENTRYFORM3762DATAMODULESFORM37621DATAMODULEFORM命名标准DATAMODULESFORMS类的命名应该有意义,并且使用TDM作为前缀。例如TDMCUSTOMERCLASSTDATAMODULETDMORDERSCLASSTDATAMODULE37622DATAMODULE实例命名标准DATAMODULEFORM的类实例的名字应同期掉T的DATAMODULEFORM类的名字相一致。例如TYPENAMEINSTANCENAMETCUSTOMERDATAMODULECUSTOMERDATAMODULETORDERSDATAMODULEORDERSDATAMODULE38控件381控件实例的命名控件的实例应使用去掉T该控件类的名称作为前缀,例如输入用户姓名的TEDIT的名字为EDITUSERNAME。382控件的简写控件的名称可使用以下简写,但所用简写于控件名称之间药添加_3821STANDARDTABMMTMAINMENUPMTPOPUPMENUMMITMAINMENUITEMPMITPOPUPMENUITEMLBLTLABELEDTTEDITMEMTMEMOBTNTBUTTONCBTCHECKBOXRBTRADIOBUTTONLBTLISTBOXCBTCOMBOBOXSCBTSCROLLBARGBTGROUPBOXRGTRADIOGROUPPNLTPANELCLTCOMMANDLIST3822ADDITIONALTABBBTNTBITBTNSBTSPEEDBUTTONMETMASKEDITSGTSTRINGGRIDDGTDRAWGRIDIMGTIMAGESHPTSHAPEBVLTBEVELSBXTSCROLLBOXCLBTCHECKLISTBOXSPLTSPLITTERSTXTSTATICTEXTCHTTCHART3823WIN32TABTBCTTABCONTROLPGCTPAGECONTROLILTIMAGELISTRETRICHEDITTBRTTRACKBARPRBTPROGRESSBARUDTUPDOWNHKTHOTKEYANITANIMATEDTPTDATETIMEPICKERTVTTREEVIEWLVTLISTVIEWHDRTHEADERCONTROLSTBTSTATUSBARTLBTTOOLBARCLBTCOOLBAR3824SYSTEMTABTMTTIMERPBTPAINTBOXMPTMEDIAPLAYEROLECTOLECONTAINERDDCCTDDECLIENTCONVDDCITDDECLIENTITEMDDSCTDDESERVERCONVDDSITDDESERVERITEM3825INTERNETTABCSKTCLIENTSOCKETSSKTSERVERSOCKETWBDTWEBDISPATCHERPPTPAGEPRODUCERTPTQUERYTABLEPRODUCERDSTPTDATASETTABLEPRODUCERNMDTTNMDAYTIMENECTNMECHONFTNMFINGERNFTPTNMFTPNHTTPTNMHTTPNMSGTNMMSGNMSGTNMMSGSERVNNTPTNMNNTPNPOPTNMPOP3NUUPTNMUUPROCESSORSMTPTNMSMTPNSTTNMSTRMNSTSTNMSTRMSERVNTMTNMTIMENUDPTNMUDPPSKTPOWERSOCKNGSTNMGENERALSERVERHTMLTHTMLURLTNMURLSMLTSIMPLEMAIL3826DATAACCESSTABDSTDATASOURCETBLTTABLEQRYTQUERYSPTSTOREDPROCDBTDATABASESSNTSESSIONBMTBATCHMOVEUSQLTUPDATESQL3827DATACONTROLSTABDBGTDBGRIDDBNTDBNAVIGATORDBTTDBTEXTDBETDBEDITDBMTDBMEMODBITDBIMAGEDBLBTDBLISTBOXDBCBTDBCOMBOBOXDBCHTDBCHECKBOXDBRGTDBRADIOGROUPDBLLTDBLOOKUPLISTBOXDBLCTDBLOOKUPCOMBOBOXDBRETDBRICHEDITDBCGTDBCTRLGRIDDBCHTDBCHART3828DECISIONCUBETABDCBTDECISIONCUBEDCQTDECISIONQUERYDCSTDECISIONSOURCEDCPTDECISIONPIVOTDCGTDECISIONGRIDDCGRTDECISIONGRAPH3829QREPORTTABQRTQUICKREPORTQRSDTQRSUBDETAILQRBTQRBANDQRCBTQRCHILDBANDQRGTQRGROUPQRLTQRLABELQRTTQRTEXTQRETQREXPRQRSTQRSYSDATAQRMTQRMEMOQRRTTQRRICHTEXTQRDRTQRDBRICHTEXTQRSHTQRSHAPEQRITQRIMAGEQRDITQRDBMIMAGEQRCRTQRCOMPOSITEREPORTQRPTQRPREVIEWQRCHTQRCHART38210DIALOGSTABOPENDIALOGTOPENDIALOGSAVEDIALOGTSAVEDIALOGOPENPICTUREDIALOGTOPENPICTUREDIALOGSAVEPICTUREDIALOGTSAVEPICTUREDIALOGFONTDIALOGTFONTDIALOGCOLORDIALOGTCOLORDIALOGPRINTDIALOGTPRINTDIALOGPRINTERSETUPDIALOGTPRINTSETUPDIALOGFINDDIALOGTFINDDIALOGREPLACEDIALOGTREPLACEDIALOG38211WIN31TABDBLLTDBLOOKUPLISTDBLCTDBLOOKUPCOMBOTSTTABSETOLTOUTLINETNBTTABBEDNOTEBOOKNBTNOTEBOOKHDRTHEADERFLBTFILELISTBOXDLBTDIRECT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 情感化交互在移动应用中的实践
- 河南炒茶培训课件
- 安徽绿海商务职业学院《桥梁结构电算》2023-2024学年第一学期期末试卷
- 教育政策对弱势群体的扶持策略研究
- 武汉理工大学《英语》2023-2024学年第一学期期末试卷
- 陕西科技大学《医学寄生虫学》2023-2024学年第一学期期末试卷
- 苏州信息职业技术学院《财税英语》2023-2024学年第一学期期末试卷
- 遂宁工程职业学院《口腔工艺管理》2023-2024学年第一学期期末试卷
- 急性左心衰培训课件
- 昆玉职业技术学院《过程分子生物学(全英文)》2023-2024学年第一学期期末试卷
- 城市公园物业管理费用收支预案
- 盐城市2023-2024学年三年级语文第二学期期末调研检测模拟卷
- 档案消防安全培训课件
- 小学生假期心理健康教育内容
- 拉刀设计计算说明书
- 《快递企业安全管理》课件
- 大学化学期末考试卷(含答案)
- 转向系统开发手册
- (完整word版)劳动合同书(电子版)正规范本(通用版)
- 专题1.3 新定义问题(压轴题专项讲练)2023-2024学年七年级数学上册压轴题专项讲练系列(人教版)(解析版)
- 科目一3小时速成璇姐笔记
评论
0/150
提交评论