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就有必要了。
■ 参数顺序
形参的顺序主要要考虑寄存器调用规则。
最
常用的参数应当作为第一个参数,按使用频率依次从左到右排。
输入参数位于输出参数之前。
范围大的参数应当放在范围小的参数之前。例如:
SomeProc(AP1anet, AContinent, ACountry, AState, ACity);
有些则例外。例如,在事件处理句柄中,TObject类型的Sender参数往往是第一个要传递的参数。
■ 常量参数
要使记录、数组、短字符串或接口类型的参数不能被例程修改,就应当把形参标以const。这样,编译器将以最有效的方式生成代码,保证传递的参数不可变。
如果其他