单元(unit)是组成Pascal程序的单独的源代码模块,单元有函数和过程组成,这些函数和过程能被主程序调用。一个单元至少要有unit语句,interface,和implementation三部分,也能可选的包含initialization和finalization两部分:

一、必含部分

1、unit语句

每一个单元都必须在开头有这样一条语句,以标识单元的名称,单元的名称必须和文件名相匹配。例如,如果有一个文件名为FooBar,则unit语句可能是:

unit FooBar;

2、 interface部分

在unit语句后的源代码必须是interface语句。在这条语句和implementation语句之间是能被程序和其他单元所共享的信息。一个单元的interface部分是声明类型、常量、过程和函数的地方,这些都能被主程序和其他单元调用。这里只能有声明,而不能有过程体和函数体。interface语句应当只有一个单词且在一行:

interface

3、implementation部分

它在interface部分的后面。虽然单元的implementation包含了过程和函数的源代码,但它同时也允许在此声明不被其他单元所调用的任何数据类型、常量和变量。implementation是定义在interface中声明的过程和函数的地方,implementation语句只有一个单词并且在一行上:

implementation

二、可选部分

4、initialization部分

在单元中它放在文件结尾前,它包含了用来初始化单元的代码,它在主程序运行前运行并只运行一次。

5、finalization部分

在单元中它放在initialization和end之间。finalization部分包含用于退出过程的代码

注意:如果几个单元都有initialization/finalization部分,则它们的执行顺序与单元在主程序的users子句中的出现顺序一致。不要使initialization/finalization部分的代码依赖于它们的执行顺序,因为这样的话主程序的users子句只要有小小的修改就会导致程序无法通过编译。

Delphi 单元的更多相关文章

  1. Delphi单元文件引用名称问题

    Delphi新版本的单元文件格式变化了,如windows变成了winapi.windows,如果想在单元引用中使用简称,则需要在工程选项中配置: 这样就可以使用全名或简写来引用单元了.

  2. delphi 单元 MSHTML 之Ihtmldocument2

    delphi : Ihtmldocument2接口的利用 MSHTML是微软公司的一个COM组件,该组件封装了HTML语言中的所有元素及其属性,穿越其供给的规范接口,能够访问指定网页的所有元素. MS ...

  3. DELPHI 单元文件结构

    unit Unit1; interface {接口部分开始} uses {引用单元列表,这是可选的,如果包含必须紧跟interface关键字} {接口部分声明常量/类型/变量/过程和函数,这些声明对引 ...

  4. Delphi单元文件之-防止程序重复执行

    //工程引用此单元就能防止同时出现多个实例unit MultInst;interfaceuses Windows ,Messages, SysUtils, Classes, Forms;impleme ...

  5. Delphi单元文件之-简体繁体互转

    Function GBCht2Chs(GBStr: String): AnsiString; {GBK繁体转简体} Var   len:integer;   pGBCHTChar: PChar;   ...

  6. Delphi窗体创建释放过程及单元文件小结(转)

    Delphi窗体创建释放过程及单元文件小结 Delphi中的窗体,有模式窗体与非模式窗体两种.两种窗体的调用方式不同,模式窗体使用ShowModal显示,非模式窗体使用Show显示.当显示模式窗体的时 ...

  7. delphi基础篇之单元文件

    Delphi单元文件 unit MainFrm; {库单元文件头} interface        {接口部分由Interface开始implementation结束.声明引用的单元,常量,数据类型 ...

  8. Delphi的分配及释放---New/Dispose, GetMem/FreeMem及其它函数的区别与相同

    转载自:http://www.cnblogs.com/qiusl/p/4028437.html?utm_source=tuicool 我估摸着内存分配+释放是个基础的函数,有些人可能没注意此类函数或细 ...

  9. delphi.memory.分配及释放---New/Dispose, GetMem/FreeMem及其它函数的区别与相同

    我估摸着内存分配+释放是个基础函数,有些人可能没注意此类函数或细究,但我觉得还是弄明白的好. 介绍下面内存函数前,先说一下MM的一些过程,如不关心可忽略: TMemoryManager = recor ...

随机推荐

  1. 【WPF】用代码给集合(Collection)容器动态添加子元素(Item)

    需求:如何向 TabControl 中添加选项卡项. 问题:做的TabControl分页栏想要通过代码来控制添加的子元素.同理可以将解决思路拓展到用于其他的集合控件添加子元素的问题. 在布局文件She ...

  2. [Kernel]内核版本添加字符和内核版本'+'解决

    转自:http://blog.csdn.net/adaptiver/article/details/7225980 之前每次由于git仓库编译出来每次都带有'+', 导致都需要使用git archiv ...

  3. cause: java.lang.IllegalStateException: Serialized class com.taotao.pojo.TbItem must implement java.io.Serializable

    HTTP Status 500 - Request processing failed; nested exception is com.alibaba.dubbo.rpc.RpcException: ...

  4. laravel 视图与传参

    1:先建立好一个控制器HgjController,其中index方法 return  view('hgj'); 2: 建立视图 在resources/views/hgj.blad.php <ht ...

  5. 在使用R做数据挖掘时,最常用的数据结构莫过于dataframe了,下面列出几种常见的dataframe的操作方法

    原网址 http://blog.sina.com.cn/s/blog_6bb07f83010152z0.html 在使用R做数据挖掘时,最常用的数据结构莫过于dataframe了,下面列出几种常见的d ...

  6. 用javascript将数据导入Excel

    网上收集的代码 <input type="button" name="out_excel" onclick="AutomateExcel();& ...

  7. Linux中显示一个文件最后几行的命令

    tail -n 20 filename说明:显示filename最后20行. Linux下tail命令的使用方法.linux tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端 ...

  8. 关于Cocos2d-x中实例伸缩后的位置设置

    在有的时候觉得图片太大,会进行缩放,但是在设置位置的时候,用fire->getContentSize(),用的是它原来的大小,就会产生不能准确设置节点的现象 1.在设置伸缩比例的时候,记住比例值 ...

  9. linux 打包 解压 tar zip tgz

    .tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)------------------------- ...

  10. python中时间操作总结

    一.time 二.datetime 1.获取当前系统时间 datenow = datetime.datetime.now() 2.将datetime格式的时间转换成str datenow = date ...