- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
预付费组delphi代码编写规范
目录
1. 概述 1
2. 通用源代码格式规则 1
3. 过程和函数 2
4. 变量 2
4.1. 变量命名及格式 2
4.2. 类型 3
5. 类 4
5.1. 命名及格式 4
5.2. 类中的属性访问(这点可以考虑是否加入) 5
6. 结构化异常处理 5
7. 元件类型 5
7.1. 元件实例的命名规则 5
8. 窗体与对话框类型 6
9. 数据模块类型 7
10. 文件 7
概述
本规范是根据网上一些资料整理而来,为了实用,只列出了一些重点。
通用源代码格式规则
1). 缩进
缩进就是每级间有两个空格。一般不要在源代码中放置制表符。这是因为,制表符的宽度随着不同的设置和代码管理实用程序(打印、文档及版本控制等)而不同。当遇到begin 或进入判断、循环、异常处理、with语句、记录类型声明、类声明等的时侯增加一级, 当遇到end或退出判断、循环、异常处理、with语句、记录类型声明、类声明等的时侯减少一级。
2). begin...end 语句
begin 语句必须单独占一行。例如,下面第一行是错误的,而第二行正确:
for i:=0 to 10 do begin // 错, begin 与f o r 在同一行
for i:=0 to 10 do // 对, begin 在另外一行中
begin
本规则的一个特殊情况是,当begin 为else 语句的一部分时,例如:
if some statement = then
begin
. . .
end
else begin
Some Other Statement;
end;
注意:end 语句总单独一行。当begin 不为else 语句的一部分时,相应的end 语句与begin 语句的缩进量相同。
3).注释
我们通常使用“{...}”类型的块注释,用“//”行注释。每个函数、过程和全局变量(包括模块内全局变量)都必须有注释,函数、过程的参数都必须说明。
4).空格(这个是否可以取消)
在操作符及逻辑判断符号的两端一般要添加空格,例如:I := I + 1;,a and b 等,但添加括号时不需要空格。例如:if ( a b ) then //错误的用法
If (a b) then //正确的用法
又例如:procedure Test(Param1: integer; Param3: string);
过程和函数
(1). 格式
过程名应当以大写字母开始,且大小写交错以增加可读性。下面是一个不正确的写法:
procedure thisisapoorlyformattedroutinename;
改成这样写就对了:
procedure ThisIsMuchMoreReadableRoutineName;
(2). 形参
所有参数必须是有意义的;并且当参数名称和其它属性名称重了的时候,加一个前缀‘A’, 例如:
procedure SomeProc(AUserName: string; AUserAge: integer);
变量
变量命名及格式
(1)命名前缀(这点可以考虑是否要加)
字符串类型 s ??
Int i
Double d
Datetime dt
Boolean b
TDataset ds
TQuery qry
……
如: var sUsrName : string;
循环控制变量通常使用单一的字符如:i, j, 或 k。 另外使用一个有意义的名字例如:UserIndex ,也是准许的。
首先所有变量必须起有意义的名字,使其它组员可以很容易读懂变量所代表的意义,变量命名可以采用同义的英文命名,可使用几个英文单词,但每一单词的首字母必须大写。例如: var sWriteFormat::string;
同时对于一些特定类型可采用一定的简写如下:
指针类型 P
纪录类型 Rec
数组类型 Arr
类 Class
(2). 全局变量
全局数据如果将由许多单元使用,就应移动到一个公用单元里被所有对象使用。全局数据可在声明时直接初始化为一个值。
尽量不使用全局变量,如必须使用全局变量则必须加前缀‘G’,同时应在变量名称中体现变量的类型。例如:
GPRecUserCount: point;//名称为UserCount的全局变量,其类型为指向一结构的指针但是在模块内部可以使用全局变量。
所有模块内全局变量必须用‘F’为前缀。如果几个模块之间需要进行资料交换,则需要通过声明属
文档评论(0)