delphi代码编写规范

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

预付费组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.概述

本规范是根据网上一些资料整理而来,为了实用,只列出了一些重点。

2.通用源代码格式规则

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);

3.过程和函数

(1). 格式

过程名应当以大写字母开始,且大小写交错以增加可读性。下面是一个不正确的写法:procedure thisisapoorlyformattedroutinename;

改成这样写就对了:

procedure ThisIsMuchMoreReadableRoutineName;

(2). 形参

所有参数必须是有意义的;并且当参数名称和其它属性名称重了的时候,加一个前缀‘A’, 例如:

procedure SomeProc(AUserName: string; AUserAge: integer);

4.变量

4.1. 变量命名及格式

(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’为前缀。如果几个模块之间需要进行资料交换,则需要通过声明属性的方法来实现。例如:

type

TFormOverdraftReturn = class(TForm)

private

{ Private declarations }

F_sUserName: string;

F_iUserCount: Integer;

Procedure SetUserName(Value: string);

Function GetUserName: string;

public

{ Public declarations }

property UserName: string read GetUserName write SetUserName;

property UserCount: Integer read FuserCount write FuserCount;

end;

4.2. 类型

(1).大小写规则

类型标识符是保留字,应当全部小写。Win32 API 类型常常全部大写,并且遵循诸如Windows.pas或其他API单元中关于特定类型名的规则。对于其他变量名,在加入前缀的情况下第一个字母应大写,其他字母则大小写交错。下面是一些例子:

var

sMyString: string; // 保留字

相关文档
最新文档