Delphi namespace
2015-07-21 17:05:41   来源:   评论:0 点击:

Delphi namespacenamespace声明名称空间 在delphi的工程文件中,隐含声明了一个namespace,被称作工程默认名称空间。假设工程文件头定义

Delphi namespace
 

namespace

声明名称空间

   在delphi的工程文件中,隐含声明了一个namespace,被称作工程默认名称空间。假设工程文件头定义如下:
Program MyCompany.Programs.MyProgram;(library package等关键字的头一样)
则工程的默认名称空间是MyCompany.Programs
如果一个Unit的头定义成Unit  ****;则相当于写成Unit MyCompany.Programs.****
如果一个Unit的头定义成Unit ***.****.***;则相当于声明了一个名称空间***.****
按第一种方式声明的Unit被称作generic unit,它总是工程默认名称空间的子空间
名称空间命名不区分大小写。也就是说,用.分割的几段单词中,最后一部分是不算作名称是不编译进assembly中的,比如Unit  AAA.BB.Unit3这种写法,仅仅声明了一个名称空间AAA.BB,Unit3可以看作是不同的文件名称的区分,对外界来说是看不到的,当然在Delphi内,还是对他们区分成两个不同的部分。利用这个特性,如果一个大的Namespace需要分成几个文件来编写,则可以让这些Unit的全面部分全部一样,仅在最后一个.的这一节不同,就行了。

名称空间的引用

  使用Uses语句。假设有如下语句:

uses aaa.bbb.unit1,unit2;

对于aaa.bbb.unit1已经明确指明,对于Unit2编译器会按照下面三个顺序来搜所名称空间Unit2

1 The current unit namespace (if any)
2 The project default namespace (if any)
3 Namespaces specified by compiler options

  虽然对于外部编译器来讲,Unit名称的最后一节是看不到的也是不可区分的,但是在Delphi中,最后一节仍然是不可少的,所以uses语句中,需要包含最后一节,比如在Unit1 AAA.BB.Unit1中定义了Class1,在Unit AAA.BB.Unit2中要使用Class1就必须需在uses中引用全名uses AAA.BB.Unit1或者如果工程的默认名称空间是AAA.BB,也可以直接uses Unit1,不管怎么样,uses中Unit1是必不可少的。
在Delphi的帮助中这样写道:


uses                            //在项目文件中引用的单元
  Forms,
  Unit1 in ‘Unit1.pas’ {Form1},   //表明 Unit1 单元在 ‘Unit1.pas’ 文件中
  Unit2 in ‘Unit2.pas’,

 

相关热词搜索:Delphi namespace

上一篇:delphi一个项目多单元结构解说
下一篇:Delphi关键词

分享到: function postToWb(){ var _t = encodeURI(document.title); var _url = encodeURIComponent(document.location); var _appkey = encodeURI("cba3558104094dbaa4148d8caa436a0b"); var _pic = encodeURI(''); var _site = ''; var _u = 'http://v.t.qq.com/share/share.php?url='+_url+'&appkey='+_appkey+'&site='+_site+'&pic='+_pic+'&title='+_t; window.open( _u,'', 'width=700, height=680, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, location=yes, resizable=no, status=no' ); } document.write(''); document.write(''); document.write(''); document.write(''); document.write(''); 收藏