2.1.通用源代码格式规则 1). 缩进 缩进就是每级间有两个空格。不要在源代码中放置制表符。这是因为,制表符 的宽度 随着不同的设置和代码管理实用程序(打印、
文档及版本控制等)而不同。 通过使用 Tools|Environment 菜单,在 Environment Options 对话框的 General 页 上,不要选中 Use Tab Character 和 Optional Fill 复选框,这样,制表符就不会被 保 存。 2). 边距 边距设置为 80 个字符。
源代码一般不会因写一个单词而超过边距,但本规则 比较灵 活。只要可能,长度超过一行的语句应当用逗号或运算符换行。换行后,应缩进 两个字 符。 3). 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 语句的缩进量相同。 4).注释 我们通常使用“{...}”类型的块注释,以前的“(*...*)”类型的块注释用于临时注 释掉暂不使用的代码, Delphi 2 开始支持 从 “//”行注释, 如果决定不在支持 Delphi 2.0 以下的版本,可以使用“//”注释。 2.2.Object Pascal 语句格式语句书写规范与用法 1). 括号 在左括号与下一字符之间没有空格。同样,右括号与前一字符也没有空格。下 面的例 子演示了正确与不正确的空格。 CallProc( Aparameter ); // 错! CallProc(Aparameter); // 正确! 不要在语句中包含多余的括号。在源代码中,括号只有在确实需要时才使用。 下面的 例子
演示了正确与不正确用法: if (I=42) then // 错,括号是多余的 if (I=42) or (J=42) then // 正确,必须使用括号 2). 保留字和关键字 Object Pascal 语言的保留字和关键字总是完全的小写。下面是
Delphi 5 保留字 列表 : and array as asm begin case class const
constructor destructor dispinterface div do downto else end except exports file finalization finally for function goto if implementation in inherited initialization inline interface is label library mod nil not object
of or out packed procedure program property raise record repeat resourcestring set shl shr string then threadvar to try type unit until uses var while with xor private protected public
published automated
3). 过程和函数 (1). 格式 过程名应当以大写字母开始,且大小写交错以增加可读性。下面是一个不正确 的写法 : procedure thisisapoorlyformattedroutinename; 改成这样写就对了: procedure ThisIsMuchMoreReadableRoutineName; (2). 形参 (1) 格式 只要可能,同一类型的形参应当
归并在一起: procedure Foo(Param1,Param2,Param3:Imteger;Param4:string); (2) 参数顺序 形参的顺序主要要考虑寄存器调用规则。最
常用的参数应当作为第一个参数, 按使用 频率依次从左到右排。输入参数位于输出参数之前。范围大的参数应当放在范围 小的参 数之前。例如: SomeProc(aPlanet, aContinent, aCountry, aState, aCity). 有些则例外。例如,在事件处理过程中,TObject 类型的 Sender 参数往往是第 一个 要传递的参数。 (3) 常量参数 要使记录、数组、短字符串或接口类型的参数不能被过程修改,就应当把形参 标以 Const 。这样,编译器将以最有效的方式生成代码,保证传递的参数不可变。
如果其他类型的参数希望不被过程所修改,也可以标上 Const 。尽管这对效率 没有影 响,但这给过程的调用者带来了更多的信息。 4). 变量 (1). 局部变量 局部变量用于过程内部,果需要的话,应当在过程的入口处立即初始化变量。 局部的 AnsiSt