|
e
fsomefield : integer;
protected
function getsomefield : integer;
procedure setsomefield(value : integer);
public
property somefield : integer read getsomefield write setsomefield;
end;
3.8.4 属性
3.8.4.1 命名/格式
属性如果是表示为一个私有域的存取器的话,那么它的名字应是它们所操作的域的名字除去解释符f。
属性的名字应是名词,不是动词。属性表示的是数据,而方法表示的是行为。
数组类型的名称应为复数。一般情况下属性的名称应为单数。
3.8.4.2 使用存取的方法
尽管没有要求,但还是建议尽量少地为一个表示私有域的属性而使用写入存取方法。
四、文件
4.1 工程文件
4.1.1 命名
工程文件应取个描述性的名字。例如,delphi 4开发者指南错误管理器 的工程名字是:ddgbugs.dpr。一个有关系统信息的程序的名字就应象 sysinfo.dpr。
4.2 窗体文件
4.2.1 命名
一个窗体文件的取名应可以描述使用该窗体的目的,并加以后缀frm。例如,一个“关于”的窗体的文件名应是aboutfrm.dpr。主窗体的文件名应是mainfrm.dpr。
4.3 数据模板文件
4.3.1 命名
数据模板的取名应能表示使用该数据模板的目的,它的名称应加以两个字符的后缀dm。例如,自定义数据模板的文件名字应为customersdm.dfm。
4.4 远端数据模板文件
4.4.1 命名
远端数据模板的取名应能表示使用该远端数据模板的目的,它的名称应加以三个字符的后缀rdm。例如,自定义远端数据模板的文件名字应为customersrdm.dfm。
4.5 unit文件
4.5.1 通用unit结构
4.5.1.1 unit的名字
unit文件应取一个可描述性的名字。例如,包含应用程序主窗体的单元应叫做mainfrm.pas。
4.5.1.2 uses子句
在interface部分的uses子句应包含在interface部分中的代码所需要的单元。去掉那些delphi可以自动加入到程序中的单元。
在implementation部分的uses子句应只包含在implementation部分中的代码所需要的单元的名字。去掉不必要的单元。
4.5.1.3 interface部分
interface部分应包含只那些其它单元所需要存取类型的定义、变量、过程/函数的预定义等等。否则,就应放在implementation部分定义。
4.5.1.4 implementation部分
implementation部分应包含那些只在本单元中私用的类型定义、变量、过程/函数定义等等。
4.5.1.5 initialization部分
不要在initialization 部分放入耗时长的代码,这将使程序的第一个界面出现
得比较缓慢。
4.5.1.6 finalization部分
在这里要保证释放你在initialization部分所分配的任何资源。
4.5.2 窗体单元
4.5.2.1 命名
一个窗体的单元文件应拥有与它所对应的窗体文件同样的名称。例如,“关于”窗体的单元名称应为 aboutfrm.pas,而主窗体的单元名称应为mainfrm.pas。
4.5.3 数据模板单元
4.5.3.1 命名
一个数据模板的单元文件应拥有与它所对应的数据模板文件同样的名称。例如,一个自定义数据模板单元的名称应为customersdm.pas。
4.5.4 一般目的单元
4.5.4.1 命名
一般目的单元的取名应符合使用该单元的目的。例如,一个实用程序单元取名为bugutilities.pas。一个包含全局变量的单元取名为customerglobals.pas。
注意,该单元的名字不能与它的工程中所使用的所有包中的单元的名字相同。不赞成使用一般的或通用的单元名字。
4.5.5 构件单元
4.5.5.1 命名
构件单元应放在独立的目录,以将它们同定义构件组或构件集合的单元区分开来。它们要永远同工程在不同的目录。单元名字应同它们的内容相符。
注意:查阅“用户定义的构件”部分来获得更多有关构件命名标准的信息。
4.6 文件头
建议在所有源文件、工程文件、单元等等中使用信息化文件头。一个良好的文件头应包含以下信息:
{
版权… 著作的年、月、日…
}
五、窗体和数据模板
5.1 窗体
5.1.1 窗体类型命名标准
窗体类型的取名应能表达使用该窗体的目的。类型定义应加以前缀t。前缀后面跟随着描述性的名字。最后,应加以form后缀来描述名字。例如,一个“关于”的窗体的类型的名字应为:
taboutfrom = class(tform);
主窗体的定义为:
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创建的缺省名的构件不会被遗弃。在设计构件类型时应设计一个小写的前缀。使用前缀而不使用后缀的原因是在搜寻时,在对象检查器和代码探索器中搜寻构件的名字比搜寻构件的类型更容易实现。
7.5 构件的前缀
以下构件的前缀可以用来设计delphi 4中的标准构件。请在此列表中加入第三方构件的前缀。
7.6 standard页
前缀 构件
mm tmainmenu
pm tpopupmenu
mmi tmainmenuitem
pmi tpopupmenuitem
前缀 构件
lbl tlabel
edt tedit
mem tmemo
btn tbutton
cb tcheckbox
rb tradiobox
lb tlistbox
cb tcombobox
scb tscrollbar
gb tgroupbox
rg   上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页 [系统软件]InstallShield Express for delphi制作安装程序定… [常用软件]InstallShield Express制作Delphi数据库安装程序 [Delphi程序]为什么选择Delphi.Net ? [Delphi程序]《关于VisiBroker For Delphi的使用》(4) [Delphi程序]转贴:Conversion to Delphi 6: Missing unit Pro… [Delphi程序]Borland Delphi 9 的新特性 [Delphi程序]Delphi 键盘码表 [Delphi程序]Chuck Jazdzewski的离开意味着Delphi的终结吗? [Delphi程序]Delphi Access violations 问题的解决之道 [Delphi程序]QQ2000B刷屏机的源码,(Delphi,VC)双版本的
|