delphi源代码:delphi代码标准文档
疯狂代码 CrazyCoder/ :http:/CrazyCoder/Delphi/Article12055.html 1.前言 本
文档主要是为Delphi开发人员提供个源代码书写标准以及和文件命名标准使他们在编程时有致格 式可遵循这样每个编程人员编写代码能够被其他人理解 2.源书写规范标准2.1.通用源代码格式规则1). 缩进 缩进就是每级间有两个空格不要在
源代码中放置制表符这是 制表符宽度随着区别设置和代码管理实用(打印,
文档及版本控制等)而区别 通过使用Tools|Environment 菜单在Environment Options 对话框General页上不要选中Use Tab Character 和Optional Fill 复选框这样制表符就不会被保存 2). 边距 边距设置为80个源代码般不会因写个单词而超过边距但本规则比较灵活只要可能长度超过行语句应当 用逗号或运算符换行换行后应缩进两个 3). begin...end 语句begin 语句必须单独占行例如下面第行是而第 2行正确: for i:=0 to 10 do begin // 错, begin 和f o r 在同行 for i:=0 to 10 do // 对, begin 在另外行中 begin 本规则个特殊情况是当begin 为 语句部分时例如: some statement = then begin ... end begin Some Other Statement; end; 注意:end 语句总单独行当begin 不为 语句部分时相应end 语句和begin 语句缩进量相同 4).注释 我们通常使用"{...}"类型块注释以前"(*...*)"类型块注释用于临时注释掉暂不使用代码从Delphi 2开
始支持"//"行注释如果决定不在支持
Delphi 2.0以下版本可以使用"//"注释 2.2.Object Pascal语句格式语句书写规范标准和使用方法1). 括号 在左括号和下的间没有空格同样右括号和前 也没有空格下面例子演示了正确和不正确空格 CallProc( Aparameter ); // 错! CallProc(Aparameter); // 正确! 不要在语句中包含多余括号在源代码中括号只有在确实需要时才使用下面例子
演示了正确和不正确使用方法: (I=42) then // 错括号是多余 (I=42) or (J=42) then // 正确必须使用括号 2). 保留字和关键字 Object Pascal 语言保留字和关键字总是完全小写下面是Delphi 5保留字列表: and .gif' /> as asm
begin
const
constructor destructor
disperface div
do downto
end
except exports file finalization
finally for function goto
implementation
in inherited
initialization inline erface is
label library mod nil
not object of or
out packed
procedure program
property raise record repeat
resource
shl shr
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(P
aram1,Param2,Param3:Imteger;Param4:); (2) 参数顺序 形参顺序主要要考虑寄存器规则最
常用参数应当作为第个参数按使用频率依次从左到右排输入参 数位于输出参数的前范围大参数应当放在范围小参数的前例如: SomeProc(aPlanet, aContinent, aCountry, aState, aCity). 有些则例外例如在事件处理过程中TObject 类型Sender 参数往往是第个要传递参数 (3) 常量参数 要使记录,,短串或接口类型参数不能被过程修改就应当把形参标以Const 这样编译器将以最有 效方式生成代码保证传递参数不可变 如果其他类型参数希望不被过程所修改也可以标上Const 尽管这对效率没有影响但这给过程者带来了更多信息
4). 变量(1). 局部变量 局部变量用于过程内部果需要话应当在过程入口处立即化变量局部AnsiString 类型变量 自动被化为空串局部接口和disperface类型变量自动被化为nil局部Variant和OleVariant类型变量自动被化为 Un