Delphi项目构成之单元文件PAS
单元文件是Pascal源文件,扩展名为.pas。
有三种类型的单元文件:
- 窗体/数据模块和框架的单元文件(form/data module and frame units),一般由Delphi自动生成。
- 组件的单元文件(component units),由您或者Delphi生成。
- 通用的单元文件(general-purpose units),有您创建。
下面让我们看看基本的Pascal单元文件结构是如何的?
Step1、在主菜单上选择【File | New | Unit】,Delphi将创建一个新的单元,并在Code Editor中显示出。

Step2、让我们来看看一个最简单的pascal单元,包括了四个关键字unit、interface、implementation和end;

比较全的单元如下,请看注释:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
unit Unit1;interfaceuses { List of units goes here } Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; { Interface section goes here }type { type关键字用来声明一个新的类型} TMyArray = array[0..19] of Byte; { 声明TMyArray用来代替array[0..19] of Byte}const { const关键字用来声明常量} AppCation = 'Hello World'; { AppCation由于在interface段声明,它在单元的任何地方都可以用}var { var关键字用来声明变量,也分interface段和implementation段} X: Integer; MyArry: TMyArray; { MyArray为刚才定义的TMyArray新类型} procedure DoSomething; { 声明一个DoSomething过程}implementationuses { List of units goes here } SysUtils, Variants;var ObjList: TObjectList;const { BaseX,BaseY由于在implementation段声明,只能在单元内使用} BaseX = 20; BaseY = 200; { 实现interface段声明的DoSomething过程} procedure DoSomething; begin { Code for DoSomething goes here.} end; //C++风格的注释,只能用于单行注释 (* 相同类型注释不能嵌套 *) { 推荐使用的注释符号 } { Implementation section goes here }initialization { Initialization section goes here } ObjList := TObjectList.Create;finalization { Finalization section goes here } FreeAndNil(ObjList);end. |
uses单元引用
一个单元引用的外部单元清单,其中每个单元必须用逗号分开,最后一个单元必须加分号,分号表示该uses清单的结束。
interface接口段
用来生命这个单元的输出标识符,即能被其他单元访问的项。接口段以interface开始,以implementation结束。
implementation执行段
执行段以implementation开始,以下一个关键字结束,下一个关键字通常就是单元的最后关键字end。但在有初始化的单元中,下一个关键就是initialization关键字。
以上三个部分是unit单元必须要的。接下来两个关键字部分是可选的。
initialization单元初始化和finalizaiton单元结束
用来执行启动和清理的代码,初始化中的任何代码在其单元载入内存时都要被执行,结束段中的任何代码在单元从内存中清理前都要被执行。
可以只有一个初始化段,但不能只有结束段,而没有初始化段。
Delphi项目构成之单元文件PAS的更多相关文章
- delphi项目中的modelsupport文件夹
delphi项目中的modelsupport文件夹 今天写着写着突然发现多了一个这个文件夹..苦思不得其解 看着又难受 删了又重建 终于找到了 存此备查;Tools--option--toget ...
- delphi基础篇之单元文件
Delphi单元文件 unit MainFrm; {库单元文件头} interface {接口部分由Interface开始implementation结束.声明引用的单元,常量,数据类型 ...
- Delphi窗体创建释放过程及单元文件小结(转)
Delphi窗体创建释放过程及单元文件小结 Delphi中的窗体,有模式窗体与非模式窗体两种.两种窗体的调用方式不同,模式窗体使用ShowModal显示,非模式窗体使用Show显示.当显示模式窗体的时 ...
- 问题-Delphi编译时提示缺少delphi自己的单元文件
问题现象:在编译工程是,提示缺少DELPHI自己的很多单元. 问题原因:这可能是因为手动误删除,或是第三方控件安装时误删除DELPHI自己的目录引起的(如果说错了,希望高人指点). 问题处理: 方法一 ...
- Delphi 封装Frame到Dll文件
做项目的时候,发现这个Frame很好用,为了省空间.调用和修改方便,就将Frame封装到dll(动态链接库)里面,确实很好使. 效果图如下: 上图是临时测试用的,忘了将Frame的align设置成al ...
- 如何用DELPHI编程修改外部EXE文件的版本信
右击里面有修改 点开直接修改就可以了吧. DELPHI 里程序的版本信息怎么是灰色的,无法更改 耐心读以下说明,应该能解决你的问题,如果不能解决,请Hi我~ 如何给自己的dll文件添加版本信息呢? 首 ...
- 如何分析一个已有的Delphi项目源代码
分析一个已有的Delphi项目,应该从以下入手(按先后顺序):1. 编译条件,包括自定义的Condition以及inc文件里的标识2. 主项目文件dpr,因为窗体的windows消息循环只是程序的一部 ...
- 【翻译】在GitHub上通过星级评估排名前10的最受欢迎的开源Delphi项目
GitHub上有相当多的Delphi开源项目可以为你节省一些时间.我在GitHub上搜索了Delphi,然后按最主要的项目进行排序,并列出了前十名单.这里有一些非常好的东西,包括Awesome Del ...
- Android项目实战(二十四):项目包成jar文件,并且将工程中引用的jar一起打入新的jar文件中
前言: 关于.jar文件: 平时我们Android项目开发中经常会用到第三方的.jar文件. 其实.jar文件就是一个类似.zip文件的压缩包,里面包含了一些源代码,注意的是.jar不包含资源文件(r ...
随机推荐
- iOS开发之UISearchBar初探
iOS开发之UISearchBar初探 UISearchBar也是iOS开发常用控件之一,点进去看看里面的属性barStyle.text.placeholder等等.但是这些属性显然不足矣满足我们的开 ...
- 前端 初识angularJS的基本概念
DEMO1演示地址:http://webenh.chinacloudsites.cn/default/demo1 今天在这里分享分享我个人学习angular的知识点总结.在还没有接触到angula ...
- @在php中的作用
@是PHP提供的错误信息屏蔽的专用符号. 使用@mysql_query 不会出现Warning,而原来mysql_query 在遇到错误时会在页面上访提示Warning. 看PHP的代码,总有些行前边 ...
- 集群服务器 时间同步 - Chrony
greenplum,openstack等云计算项目需要集群服务器部署,服务器之间的时间需要同步,但并不是所有机器可以 直接连外网,这时可以用Chrony工具解决. 解决方法是将其中一台设为时间服务器, ...
- AngularJS 指令
AngularJS 指令 AngularJS 指令是扩展的 HTML 属性,带有前缀 ng-. ng-app 指令 ng-app 指令定义了 AngularJS 应用程序的 根元素. ng-app 指 ...
- 15、安全工程师要阅读的书籍 - IT软件人员书籍系列文章
信息安全工程师是一个比较新兴的角色.在2016年今年的下半年软考就将安全工程师纳入了考试科目,说明国家对安全工程师的需求还是不错的.安全工程师包括硬件和软件两块内容吧.这里描述的安全工程师主要是针对软 ...
- Oracle global database name与db link的纠缠关系
ORACLE数据库中Global Database Name与DB LINKS的关系还真是有点纠缠不清,在说清楚这个关系前,我们先来了解一下Global Database Name的概念 Global ...
- RTP、RTCP协议学习-2015.04.15
最近做视频编解码部分,传输采用RTP协议.对学习做个记录 1.简介 实时传输协议(Real-time Transport Protocol或简写RTP)是一个网络传输协议,它是由IETF的多媒体传输工 ...
- Oracle 安装后关于用户
一.关于用户 Oracle安装会自动的生产sys用户和system用户: 1. sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户的默认密码是ch ...
- Linux简介及常用命令使用2--linux常用命令:查看 删除 编辑 创建等
cd . // 进入当前目录 cd ~ //进入根目录 pwd //当前路径 echo "my name is makaidong">makai ...