首页 | 业界新闻 | 黑客教程 | 安全漏洞 | 安全文章 | 破解技术 | 技术文摘 | 黑客文化 | 本站原创 | 安全贴吧 | 在线留言 | IP查询 | 软件下载 | 繁体中文 |
您现在的位置: 黑色反击 >> 技术资讯 >> 技术文摘 >> 编程频道 >> DELPHI >> 正文
Delphi 程序员代码编写标准指南
时间:2005-4-3 0:53:43 出处:网络 作者:未知 编辑:mervin 点击数:
以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        TRadioGroup
pnl       TPanel
cl        TCommandList
7.7 Additional页
bbtn      TBitBtn
sb        TSpeedButton
me        TMaskEdit
sg        TStringGrid
dg        TDrawGrid
img       TImage
shp       TShape
bvl       TBevel
sbx       TScrollBox
clb       TCheckListbox
spl       TSplitter
stx       TStaticText
cht       TChart
7.8 Win32页
tbc       TTabControl
pgc       TPageControl
il        TImageList
re        TRichEdit
thr       TTrackBar
prb       TProgressBar
ud        TUpDown
hk        THotKey
ani       TAnimate
dtp       TDateTimePicker
tv        TTreeView
lv        TListView
hdr       THeaderControl
前缀      构件
stb       TStatusBar
tlb       TToolBar
clb       TCoolBar
7.9 System页
tm        TTimer
pb        TPaintBox
mp        TMediaPlayer
olec      TOleContainer
ddcc      TDDEClientItem
ddci      TDDEClientItem
ddsc      TDDEServerConv
ddsi      TDDEServerItem
7.10 Internet页
csk       TClientSocket
ssk       TServerSocket
wbd       TWebDispatcher
pp        TPageProducer
tp        TQueryTableProducer
dstp      TDataSetTableProducer
nmdt      TNMDayTime
nec       TNMEcho
nf        TNMFinger
nftp      TNMFtp
nhttp     TNMHttp

上一页  [1] [2] [3] [4] 下一页

精彩推荐
hack菜鸟入门
VB 从零开始编外挂(完
IPC入侵全接触
QQ跨站漏洞巧利用,强
WinXP中CPU占用100%原
黑客新技术 灰鸽子巧妙
实例讲解 黑客入侵论坛
ADSL共享上网方式大总
BMP文件格式分析
十招教你学会破解
热门软件
网 友 评 论
关于我们 - 联系方式 - 招聘信息 - 合作伙伴 - 网站地图 - 广告服务 - 我要投稿 - 设为首页 - 加入收藏
黑色反击 力倡网络安全,崇尚互联共享,欢迎各种媒体转载我们的原创作品 [转载请注明出处]。
EMAIL:hf110.com@gmail.com 备案:苏ICP备05010002号