欢迎来到天天文库
浏览记录
ID:11599142
大小:37.00 KB
页数:5页
时间:2018-07-12
《pascal语言中的程序和单元》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、单元虽然所有窗体都在单元中定义,但反之则不然。除窗体外,单元中还可以定义一系列能访问的例程。选择File>New菜单命令,然后在ObjectRepository的New页中选择Unit图标,随即当前工程中就会加入一个空白单元。单元代码分区存放,空白单元的代码如下:unitUnit1;interfaceimplementationend.单元的概念比较简单,单元名与文件名相同,而且必须唯一。单元包括界面区(interface)及实现区(implementation),界面区用于声明其它单元能看到的部分;实现区存放界面的实现代码及外部不可见的声明
2、。此外还有两个可选的区,即初始化区及结束区,其中初始化区存放初始化代码,当程序加载到内存时执行;结束区存放程序终止时执行的代码。单元总体结构如下:unitunitName;interface//otherunitsweneedtorefertousesA,B,C;//exportedtypedefinitiontypenewType=TypeDefinition;//exportedconstantsconstZero=0;//globalvariablesvarTotal:Integer;//listofexportedfunctionsa
3、ndproceduresprocedureMyProc;implementationusesD,E;//hiddenglobalvariablevarPartialTotal:Integer;//alltheexportedfunctionsmustbecodedprocedureMyProc;begin//...codeofprocedureMyProcend;initialization//optionalinitializationpartfinalization//optionalclean-upcodeend.界面区头部的uses子
4、句表示需要访问的外部单元,这些外部单元中定义了你需要引用的数据类型,如自定义窗体内所用的控件。实现区头部的uses子句用于表示只在实现部分访问的单元。如果例程或方法的代码需要引用其他单元,你应该把这些单元加到实现区子句中,而不是界面区。你所引用的单元必须在工程文件目录中能找到,或在工程选项对话框的Directories/Conditionals页设定这些单元的搜索路径。C++程序员应该知道uses语句和include指令是不同的。uses语句只是用于输入引用单元的预编译界面部分,引用单元的实现部分在单元编译时才考虑。你引用的单元可以是源代码格
5、式(PAS),也可以是编译格式(DCU),但是必须用同一版本的Delphi进行编译。在单元的界面区中可以声明许多不同的元素,包括过程、函数、全程变量及数据类型。在Delphi应用程序中,数据类型可能用得最频繁。每创建一个窗体,Delphi会在单元中自动建立一个新的数据类型--类(class)。在Delphi单元中不仅能定义窗体;还能象传统单元一样,只包含过程及函数;还可以定义与窗体和任何可视控件无关的类。单元的工作空间Pascal单元是封装性和可视性的关键,它很可能比类中的private和public关键字还要重要。(实际上,private关
6、键字与类单元的工作空间有关)。一个标识符(如一个变量、过程、函数或数据类型)的工作空间是指能访问标识符的代码段。基本原则是:标识符在它工作空间内才有意义,也就是说,只在其声明的代码块中才有意义,在工作空间外你不能访问这些标识符。例如:·局部变量:如果你在例程或方法代码块内声明一个变量,那么单元外部不能访问这个变量。该标识符的工作空间就是定义标识符的整个例程,其中包括嵌套例程(除非嵌套例程内有一个同名标识符覆盖了外部定义)。当调用到例程时,其变量压入栈内存中,例程一结束,栈中的内存就自动释放。·全程隐藏变量:如果你在单元的实现部分声明一个标识符
7、,那么在单元外你不能使用它,但是能在单元内任一代码块及过程中使用它。程序一启动就会为全程隐藏变量分配内存,程序终止内存释放,你可以在单元初始化区给它赋初值。·全程变量:如果你在单元的界面部分声明标识符,那么该标识符的工作空间就扩大了,任何Use它的单元都能访问它。这类变量的内存分配及生命周期与上类变量相同,唯一不同的是其可见性。只要程序单元的uses子句中列出某一单元名,那么所列单元界面区中声明的任何标识符该程序都能访问。窗体类的变量就是这样声明的,所以你可以在其他窗体代码中访问这个窗体以及它的公共域、方法、属性和组件。当然把什么都声明为全局
8、标识这种编程习惯并不好。除了明显的内存消耗问题外,使用全程变量使代码维护和更新变得困难。一句话,你应该尽量少用全程变量。单元用作命名空间uses语句是访问其他单元工
此文档下载收益归作者所有