敬业的IT人 >> 编程开发 >> Delphi >> Delphi代码创建形式规范

Delphi代码创建形式规范

敬业的IT人 互联网 佚名 2008-1-4 16:17:49
Delphi代码创建形式规范本规范的目的:给自己的代码一个统一而标准的外观,增强
可读性,可理解性,可维护性
本规范的原则:名称反映含义,形式反映结构

1、单元风格
2、各区风格
3、语句风格
4、命名规则

参考:Borland官方Object Pascal风格指南
Delphi5程序员指南编码标准

1、单元风格

 {*******************************************************}
{ }
{ 项目名称 }
{ }
{ 版权所有 (C) 2000,2001 公司名称 }
{ }
{*******************************************************}


unit UnitName;
{*******************************************************
项目:
模块:
描述:
版本:
日期:
作者:
更新:
TODO:
*******************************************************}

interface

uses
----,----,----,----,----,----,----,----,----,----,----,
----,----, ----,----,----,----;

const
--------------------;
--------------------;
--------------------;

type
--------------------;
--------------------;
--------------------;
--------------------;
--------------------;
--------------------;

var
--------------------;
--------------------;
--------------------;

implementation

uses
----,----,----,----;

{$R *.RES}
{$R *.DFM}

--------------------------------;
--------------------------------;
--------------------------------;
--------------------------------;
--------------------------------;
--------------------------------;
--------------------------------;
--------------------------------;
--------------------------------;
--------------------------------;
--------------------------------;
--------------------------------;

end.返回

2、各区风格

0、注释与空白

用{ } 不用 //
主题注释,函数过程目的说明,语句注释
空行 :版权块,类之间,方法之间--(两行) 方法内部块(一行)
空格 :用以增强清晰度
缩进 :两个空格

1、常量区

基本:Const
----- = ----;
----- = ----;
----- = ----;
----- = ----;扩展
前缀: 少则C_---;多则可以每个主题有一个前缀
Const

{ 主题1 }
C_--- = ----; { 含义 }
C_--- = ----; { 含义 }
C_--- = ----; { 含义 }
C_--- = ----; { 含义 }
{ 主题2 }
----- = ----;
----- = ----;
----- = ----;
----- = ----;资源字符串,放在变量区后面

resourcestring

const
S_--- = '----';
S_--- = '----';
S_--- = '----';

例子: CM_BASE = $B000;
CM_ACTIVATE = CM_BASE 0;
CM_DEACTIVATE = CM_BASE 1;
CM_GOTFOCUS = CM_BASE 2;
CM_LOSTFOCUS = CM_BASE 3;
NumPaletteEntries = 20;
BoxPoints : array[0..5, 0..2] of GLfloat =
( (-1, 0, 0),
( 0, 1, 0),
( 1, 0, 0),
( 0, -1, 0),
( 0, 0, 1),
( 0, 0, -1) );

{ Variant type codes (wtypes.h) }

varEmpty = $0000; { vt_empty }
varNull = $0001; { vt_null }
varSmallint = $0002; { vt_i2 }
GIFVersions : array[gv87a..gv89a] of TGIFVersionRec = ('87a', '89a');

2、类型区

数据类型-->不提供服务的数据类型
T---- = ---------
对象类型-->有状态并提供服务的实体
T---- = class(----)
private
--------
--------
protected
--------
--------
public
--------
--------
published
--------
--------
end; 按字母排序Private
1、所有数据放在Private 区,以F打头
2、所有事件属性对应的方法指针放在Private 区,以F打头
3、属性的Get与Set方法放在Private 区-->不准备被继承
4、响应消息的方法放在Private 区
protected
1、被子类调用的但不能被外界调用的方法与属性
2、供子类重载的方法 virsual; virsual; abstract
public
1、构建析构方法
2、供外界调用的方法
3、供外界调用的属性
published
1、出现在Object Inspector里供设计时用的属性
2、出现在Object Inspector里供设计时用的事件响应 例子: TGIFVersion = (gvUnknown, gv87a, gv89a);
TGIFVersionRec = array[0..2] of char;
PInterfaceTable = ^TInterfaceTable;
TInterfaceTable = packed record
EntryCount: Integer;
Entries: array[0..9999] of TInterfaceEntry;

{ forword declairation }
TGIFImage = class;
TGIFSubImage = class;
{---------------------------
TGIFItem
---------------------------}
TGIFItem = class(TPersistent)
private
FGIFImage: TGIFImage;
.............
end;

3、变量区

定义全局变量
注意不要有缺省的类对象变量,在调用者中声明!
var
-----------: -------;
-----------: -------;
例子:
GIFDelayExp: integer = 10; { Delay multiplier in mS.}
GIFDelayExp: integer = 12;

4、实现区

{---------------------------------------------------------
主题
----------------------------------------------------------}

{ 方法的目的 }
procedure ----------------------------
begin
--------;
--------;
end;

{ 方法的目的 }
function -----------------------------
begin
--------;
--------;
end;

5、过程与函数

命名
格式 返回

粤ICP备06119539号
Copyright CiscoSky.Org,Some Rights Reserved.
Email:me1228#tom.com