Delphi编程代码规范
1. 一般的源代码格式规则 2
1.1 缩进 2
1.2 空格 2
1.3 边距 2
1.4 颜色及文字属性 2
1.5 begin···end 2
2. OBJECT PASCAL 3
2.1 括号 3
2.2 保留字和关键字 3
2.3 过程和函数(例程) 3
2.4 变量 4
2.5 常量(const) 5
2.6 资源串(resourcestring) 5
2.7 类型 5
2.8 构造类型 6
2.9 语句 6
2.10 结构化异常处理 8 2.11 类 8
3. 文件 10
3.1 项目文件 10
3.2 Form文件 10
3.3 数据模块文件 10
3.4 远程数据模块文件 10
3.5 单元文件 10
3.6 文件头 11
3.7 函数或过程头格式如下 11
4. Form与数据模块 12
4.1 Form 12
4.2 数据模块 13 5. 包 14
5.1 运行期包与设计期包 14
5.2 文件命名标准 14
6. 元件 14
6.1 自定义的元件 14
6.2 元件实例的命名规则 15
6.3 元件性质标识名 15
6.4 元件的前缀 15
1. 一般的源代码格式规则 1.1 缩进
缩进就是每级间有两个空格。不要在源代码中保存制表符。这是因为,制表符的宽度随着不同的用户设置和代码管理实用程序(打印、文档及版本控制等)而不同。
通过使用Tools | Editor Options菜单,在Editor Properties对话框的General页上,不要选中Use tab Character和Optimal Fill复选框,这样,制表符就不会被保存。 1.2 空格
遇到如下情况,需要添加空格:
1) 逗号的后面;
2) 冒号的后面;
3) 等号的前后;
4) 赋值号的前后
5) 运算符(+、-、*、/)的前后。 1.3 边距
边距设置为80个字符。源代码一般不会因写一个单词而超过边距,但本规则比较灵活。只要可能,长度超过一行的语句应当用逗号或运算符换行。换行后,应缩进两个字符。
1.4 颜色及文字属性
通过使用Tools | Editor Options菜单,在Editor Properties对话框的Color页上,设置相应元素的颜色及文字属性。其中:
注释(Comment): 斜体深绿色
保留字(Reserved word): 粗体天蓝色
字符串(String): 普通洋红色
数值(Number): 普通红色
其他元素取Delphi IDE缺省设置。
1.5 begin···end
begin语句必须单独占一行,例如,下面第一行是错误的,而第二行正确:
for i := 0 to l0 do begin // 错, begin与for在同一行
for i := 0 to 10 do // 对, begin在另外一行中 begin end;
本规则的一个特殊情况是,当begin为else语句的一部分时,例如:
if some statement = then
begin ... end
else begin
SomeOtherStatement; end;
end语句总是单独一行。
当begin不为else语句的一部分时,相应的end语句与begin语句的缩进量相同。
2. OBJECT PASCAL 2.1 括号
在左括号与下一个字符之间没有空格。同样,右括号与前一字符间也没有空格。下面的例于演示了正确与不正确的空格。
CallProc( AParameter ); // 错!
CallProc(AParameter); // 正确!
不要在语句中包含多余的括号。在源代码中,括号只有在确实需要时才使用。下面的例子演示了正确与不正确用法:
if (i = 42) then // 错,括号是多余的
if (i = 42)or (j = 42) then // 正确,必须使用括号
2.2 保留字和关键字
Object Pascal语言的保留字和关键字总是全部小写。
2.3 过程和函数(例程)
2.3.1 命名与格式
■ 例程名应当以大写字母开始,且大小写交错以增加可读性。
下面是一个不正确的写法:
procedure thisisapoorlyformattedroutinename;
改成这样写就对了:
procedure ThisIsMuchMoreReadableRoutineName;
■ 例程名应当有意义。进行一个动作的例程最好在名称前加上表示动作的动词为前缀。 例如:
procedure FormatHardDrive;
■ 设置输入参数值的例程名应当以Set为其前缀,例如:
procedure SetUserName;
■ 获取数值的例程名应当以Get为其前缀,例如:
function GetUserName: string;
2.3.2 形参 ■ 格式
只要可能,同一类型的形参应当归并在一起:
procedureFoo(Param1, Param2,Param3: Integer; Param4: string); ■ 命名
所有形参的名称都应当表达出它的用途。如果合适的话,形参的名称最好以字母A为前缀,例如:
procedure SomeProc(AuserName: string; AuserAge: integer);
当参数名与类的特性或字段同名时,前缀A就有必要了。
■ 参数顺序
形参的顺序主要要考虑寄存器调用规则。
最常用的参数应当作为第一个参数,按使用频率依次从左到右排。