Delphi 程序员代码编写标准指南(11)

2008-04-09 04:31:46来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

主窗体的定义为:

tmainform = class(tform);

一个用户接入窗体的名字应象:

tcustomerentryform = class(tform);

5.1.2 窗体实例命名标准

窗体实例应是没有带前缀t的相应类的名字。例如,对应于前面窗体类型而言,其实例的名字应为:

类型名称 实例名称

taboutform aboutform

tmainform mainform

tcustomerentryform customerentryform

5.1.3 自动创建窗体

只有主窗体可以是自动创建的除非有其它更好的理由不这样做。所有其它的窗体必需从工程选项对话框中的自动创建列表中移走。查阅以下部分来获得更多的信息。

5.1.4 模式窗体实例化函数

所有的窗体单元都应包含一个窗体实例化函数,该函数用来创建、设置、模式地显示窗体,并释放窗体。该函数应返回窗体的模式结果。该函数要传递的参数应遵循本文档指定的“参数传递”标准。通过这种方式封装的函数性有助于代码的再利用和维护。

该窗体的变量要从单元中移走,并再窗体实例的函数中进行本地式地定义。注意,这就意味着该窗体必需从工程/选项对话框中的自动创建列表中剔除。参考本文档后面的“自动创建窗体”。

例如,下面的单元展示了再getuserdata窗体中的一个函数。

unit userdatafrm;

interface

uses

windows, messages, sysutils, classes, graphics, controls, forms,

dialogs, stdctrls;

type

tuserdataform = class(tform)

edtusername : tedit;

edtuserid : tedit;

private

{ private declarations }

public

{ public declarations }

end;

function getuserdata(var ausername : string; var auserid : integer) :

word;

implementation

{$r *.dfm }

function getuserdata(var ausername : string; var auserid : integer) :

word;

var

userdataform : tuserdataform;

begin

userdataform := tuserdataform.create(application);

try

userdataform.caption := ‘getting user data’;

result := userdataform.showmodal;

if (result = mrok) then

begin

ausername := userdataform.edtusername.text;

auserid := strtoint(userdataform.edtuserid.text);

end;

finally

userdataform.free;

end;

end;

end.

5.2 数据模板

5.2.1 数据模板命名标准

数据模板的取名要符合使用该数据模板的目的。类型的定义应加以前缀t,后面紧接着描述性的名字,最后要加以后缀单词“datamodule”。例如,一个自定义的数据模板有时候应该象:

tcustomerdatamodule = class(tdatamodule)

一个命令式的数据模板的名字应象:

tordersdatamodule = class(tdatamodule)

5.2.2 数据模板实例命名标准

数据模板实例的名称应是对应不带前缀t的类型的名称。例如,对于前面的窗体类型而言,其实例的名称应为:

类型名称 实例名称

tcustomerdatamodule customerdatamodule

tordersdatamodule ordersdatamodule

六、包

6.1 使用运行包和设计包的比较

运行时刻的包应只包含其它构件包所要求的单元或构件。另外,包含属性/构件编辑器和其它只为设计的代码应放入到设计时刻包中。注册单元应放在设计包中。

6.2 文件命名标准

包的名称应依照下面的例子:

“iiilibvv.pkg” - 设计时刻包

“iiistdvv.pkg” - 运行时刻包

字符“iii”表示一个3字符标识前缀。这个前缀用来表明公司、个人或其它有标识意义的实体。

字符“vv”表示为该包想要对应delphi某个版本的包的版本号。

注意,包的名字中包含“lib”或“std”的意思是表明这是一个设计时刻包还是一个运行时刻包。

如果既是设计时刻包又是运行时刻包,该文件的命名是同上面一样的,例如,为delphi 4开发者指南做的包的名称应为:

ddglib40.pkg – 设计时刻包

ddgstd40.pkg – 运行时刻包

七、构件

7.1 用户自定义构件

在标准构件中命名出来的构件的名称同在“类类型”部分定义中的一样定义成一个类类型,不同的是它们有一个3字符的指示前缀,这个前缀可以表示公司、个人或其它实体。例如,一个为delphi 4开发者指南编写的时钟构件的名称定义为:

tddgclock = class(tcomponent)

注意,那三个前缀字符是小写的。

7.2 构件单元

构件单元应只包含一个主要的构件,一个主要的构件是指出现在构件栏中的构件。主要构件的辅助构件/对象应放入到同一个单元中。

7.3 使用注册单元

构件的注册过程应从构件本身的单元中剔除,并放入到一个独立的单元中。这个注册单元可以用来注册任何构件、属性编辑器、构件编辑器、专家器等。

构件的注册只应在设计时刻包中进行,注册单元应包含在设计时刻包中而不应放在运行时刻包中。

推荐使用的注册单元的名称是:

xxxreg.pas

上面的3个前缀字符“xxx”用来表示一个公司、个人或任何其它的实体。例如,在delphi 4 开发者指南中的注册单元的名称应为 ddgreg.pas。

7.4 构件实例命名约定

所有的构件都应取个描述性的名称。由delphi创建的缺省名的构件不会被遗弃。在设计构件类型时应设计一个小写的前缀。使用前缀而不使用后缀的原因是在搜寻时,在对象检查器和代码探索器中搜寻构件的名字比搜寻构件的类型更容易实现。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:全透明窗体(效果比较好)

下一篇:判断MonthCalander中鼠标点中了日期还是翻页按钮!