2022年Delphi开发 .pdf
《2022年Delphi开发 .pdf》由会员分享,可在线阅读,更多相关《2022年Delphi开发 .pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Delphi 源程序格式书写规范tianhaiyise(翻译)(转载自)1.规范简介本规范主要规定Delphi 源程序在书写过程中所应遵循的规则及注意事项。编写该规范的目的是使公司软件开发人员的源代码书写习惯保持一致。这样做可以使每一个组员都可以理解其它组员的代码,以便于源代码的二次开发记忆系统的维护。2.一般格式规范2.1 缩进缩进就是在当源程序的级改变时为增加可读性而露出的两个空格。缩进的规则为每一级缩进两个空格。不准许使用 Tab。因为 Tab 会因为用户所作的设置不同而产生不同的效果。当遇到begin 或进入判断、循环、异常处理、with 语句、记录类型声明、类声明等的时侯增加一级,当
2、遇到 end 或退出判断、循环、异常处理、with 语句、记录类型声明、类声明等的时侯减少一级。例如:if TmpInt 100 then TmpInt:=100;2.2 Begin.Endbegin 语句和 end 语句在源程序中要独占一行,例如:for I:=0 to 10 do begin/不正确的用法end;for I:=0 to 10 do/正确的用法begin end;2.3 空格在操作符及逻辑判断符号的两端添加空格,例如:I:=I+1;,a and b 等,但添加括号时不需要空格。例如:if(a b)then/错误的用法If(a b)then/正确的用法又例如:procedure
3、 Test(Param1:integer;Param3:string);3.Object Pascal语法书写格式规范3.1 保留字Object Pascal 语言的保留字或关键词应全部使用小写字母。3.2 过程和函数名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 13 页 -3.2.1 命名及格式过程和函数的名称应全部使用有意义的单词组成,并且所有单词的第一个字母应该使用大写字母。例如:procedure formatharddisk;/不正确的命名procedure FormatHardDisk;/正确的命名设置变量内容的过程和函数,应使用Set 作为前缀,例如:proced
4、ure SetUserName;读取变量内容的过程和函数,应使用Get 作为前缀,例如:function GetUserName:string;3.2.2 过程和函数的参数3.2.2.1 命名统一类型的参数写在同一句中:procedure Foo(Param1,Param2,Param3:Integer;Param4:string);3.2.2.2 命名所有参数必须是有意义的;并且当参数名称和其它属性名称重了的时候,加一个前缀A,例如:procedure SomeProc(AUserName:string;AUserAge:integer);3.2.2.3 命名冲突当使用的两个unit 中包括
5、一个重名的函数或过程时,那幺当你引用这一函数或过程时,将执行在 use 子句中后声明的那个unit 中的函数或过程。为了避免这种uses-clause-dependent需要在引用函数或过程时,写完整函数或过程的出处。例如:SysUtils.FindClose(SR);Windows.FindClose(Handle);3.3 变量3.3.1 变量命名及格式首先所有变量必须起有意义的名字,使其它组员可以很容易读懂变量所代表的意义,变量命名可以采用同义的英文命名,可使用几个英文单词,但每一单词的首字母必须大写。例如:var WriteFormat::string;同时对于一些特定类型可采用一定的
6、简写如下:指针类型P 纪录类型Rec 数组类型Arr 类Class 循环控制变量通常使用单一的字符如:i,j,或 k。另外使用一个有意义的名字例如:UserIndex,也是准许的。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 13 页 -3.3.2 局部变量在过程中使用局部变量遵循所有其它变量的命名规则。3.3.3 全局变量尽量不使用全局变量,如必须使用全局变量则必须加前缀g,同时应在变量名称中体现变量的类型。例如:gprecUserCount:point;/名称为 UserCount 的全局变量,其类型为指向一结构的指针但是在模块内部可以使用全局变量。所有模块内全局变量必须用
7、F为前缀。如果几个模块之间需要进行资料交换,则需要通过声明属性的方法来实现。例如:type TFormOverdraftReturn=class(TForm)private Private declarations FuserName:string;FuserCount:Integer;Procedure SetUserName(Value:string);Function GetUserName:string;public Public declarations property UserName:string read GetUserName write SetUserName;prope
8、rty UserCount:Integer read FuserCount write FuserCount;end;3.4 类型3.4.1 大小写协议保留字的类型名称必须全部小写。Win32 API 的类型通常全部大写,对于其它类型则首字母大写,其余字母小写,例如:var MyString:string;/reserved word WindowHandle:HWND;/Win32 API type I:Integer;/type identifier introduced in System unit 3.4.2 浮点类型尽量不使用Real 类型,他只是为了和旧的Pascal代码兼容,尽量
9、使用Double 类型。Double 类型是对处理器和数据总线做过最优化的并且是IEEE 定义的标准数据结构。当数值超出Double 的范围时,使用Extended。但 Extended 不被 Jave支持。但使用其它语言编写的DLL 时可能会使用Single 类型。3.4.3 枚举类型枚举类型的名字必须有意义并且类型的名字之前要加前缀T。枚举类型的内容的名字必须包含枚举类名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 13 页 -型名称的简写,例如:TSongType=(stRock,stClassical,stCountry,stAlternative,stHeavyMeta
10、l,stRB);3.4.4 数组类型数组类型的名字必须有意义并且类型的名字之前要加前缀T。如果声明一个指向数组类型的指针必须在该类型的名字之前加前缀P,例如:type PCycleArray=TCycleArray;TCycleArray=array1.100 of integer;3.4.5 记录类型记录类型的名字必须有意义并且类型的名字之前要加前缀T。如果声明一个指向数组类型的指针必须在该类型的名字之前加前缀P,例如:type PEmployee=TEmployee;TEmployee=record EmployeeName:string EmployeeRate:Double;end;3
11、.5 类3.5.1 命名及格式类的名字必须有意义并且类型的名字之前要加前缀T。例如:type TCustomer=class(TObject)类实例的名字通常是去掉T的类的名字。例如:var Customer:TCustomer;3.5.2 类中的变量3.5.2.1 命名及格式类的名字必须有意义并且类型的名字之前要加前缀F。所有的变量必须是四有的。如果需要从外部访问此变量则需要声明一属性3.5.3 方法3.5.3.1 命名及格式名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 13 页 -同函数和过程的命名及格式。3.5.3.2 属性访问方法所有的属性访问方法必须出现在privat
12、e 或 protected 中。属性访问方法的命名同函数和过程的命名另外读方法(reader method)必须使用前缀 Get.写方法(writer method)必须使用前缀 Set。写方法的参数必须命名为 Value,其类型同所要写的属性相一致。例如:TSomeClass=class(TObject)private FSomeField:Integer;protected function GetSomeField:Integer;procedure SetSomeField(Value:Integer);public property SomeField:Integer read Ge
13、tSomeField write SetSomeField;end;3.6 属性3.6.1 命名及格式同其用操作的,出去前缀F的类的变量的名称相一致。3.7 文件3.7.1 项目文件3.7.1.1 项目目录结构程序主目录-Bin(应用程序所在路径)-Db(本地数据库所在路径)-Doc(文档所在路径)-Hlp(帮助文件所在路径)-Backup(备份路径)-Tmp(临时文件路径)3.7.1.2 命名项目文件必须使用一个有意义的名字。例如:Delphi 中系统信息的项目文件被命名为SysInfo.dpr。3.7.2 Form 文件3.7.2.1 命名同 Form 的名称相一致:例如:Form 的名称
14、为 FormMain 则 Form 文件的名称就为FormMain.frm。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 13 页 -3.7.3 Data Module 文件3.7.3.1 命名data module文件的命名应该有意义,并且使用DM 作为前缀。例如:用户 data module 被命名为DMCustomers.dfm。3.7.4 Remote Data Module 文件3.7.4.1 命名remote data module文件的命名应该有意义,并且使用RDM 作为前缀。例如:用户remote data module 被命名为 RDMCustomers.df
15、m 。3.7.5 Unit 文件3.7.5.1 普通Unit 3.7.5.1.1 Unit 文件命名unit 文件的命名应该有意义,并且使用unit 作为前缀。例如:通用 unit 被命名为 UnitGeneral。3.7.5.2 Form Units 3.7.5.2.1 命名Form unit 文件的名字必须和Form 的名称保持一致。例如:主窗体叫 FormMain.pas 则 Form Unit 文件的名字为:UnitFormMain。3.7.5.3 Data Module Unis 3.7.5.3.1 命名Data Module unit 文件的名字必须和Data Module 的名称
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Delphi开发 2022 Delphi 开发
限制150内