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

类别:Delphi 点击:0 评论:0 推荐:
 

五、窗体和数据模板

 

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 – 运行时刻包

本文地址:http://com.8s8s.com/it/it6044.htm