打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Delphi

一、工程文件

program MultiUnit;{$APPTYPE CONSOLE}uses  SysUtils,  Unit1 in 'Unit1.pas';begin    //引用unit1中的变量,因为是在接口部分定义所以可以引用    strGreet:='Hello world';    //调用unit1中的过程 因为是在接口部分定义所以可以引用    Greeting(strGreet);    //调用unit2中的函数;因为是在接口部分定义所以可以引用    nAdd:=10;    nAddfactor:=11;    writeln(GetSum(nadd,naddfactor));    {    1、因为pai变量是在unit1单元的实现部分定义的,因此不能被工程文件引用    }    //writeln(10*10*pai);    {    1、 因function GetArea(var r:single):single; 是在unit1单元的实现部分定义的        所以在工程文件中也不能访问    }    //writeln(GetArea(3.0));    {    1、 因为没有在工程文件中引用unit2单元,所以不能引用unit2单元的对象    2、 虽然在unit1单元引用了unit2单元,但是是在实现部分,所以在工程文件中        也不能引用unit2单元的对象。    3、 如果在unit1单元的接口部分引用了unit2单元,则在工程文件中也能引用unit2        单元文件的对象    }    //showUnit2();    readln;end.

 

二、单元文件 unit1

{       单元文件1、Delphi程序由称为单元的源代码模块构成2、每个单元保存在一个单独的单元文件 *.pas 文件中,分别进行编译,然后编译后的   单元被链接到程序中3、单元文件由以下几部分组成:        单元头      unit 关键字表示        接口部分    interface 关键字表示        实现部分    implementation 关键字表示        初始化部分  initialization 关键字表示        结束化部分  finalization        单元的结尾  end. 表示}{   单元头1、 unit关键字定义单元头,2、 语法格式为:  unit 单元标识符3、 在其他单元中利用 单元标识符 来表示整个单元}unit Unit1;{       接口部分1、 接口部分定义其他单元引用本单元时可以访问本单元那些对象,    接口部分声明的变量、函数、过程的作用域 类似于C语言的全局对象2、 接口部分由关键字 interface 开始,直到遇到关键字  implementation 结束3、 接口部分可以      A、使用 uses 子句, uses子句必须紧跟在interface之后      B、利用 var 关键字定义变量      C、声明可以被其他单元调用的过程 procedure 和 函数 function}interfacevar    strGreet:string;    nAdd:integer;    nAddFactor:integer;{       过程1、 通过关键字 procedure 定义和声明过程2、 注意声明最后有一个分号3、 以后具体介绍}procedure Greeting(var strGreet:string);{       函数1、 通过关键字 function 定义和声明过程2、 注意声明最后有一个分号3、 以后具体介绍}function GetSum(var value1,value2:integer):integer;{       实现部分1、 实现部分用来实现单元的代码部分,实现部分主要的代码编辑部分2、 实现部分用来定义接口部分声明的过程、函数3、 实现部分利用关键字 implementation 表示开始,直到遇到关键字 initialization    或者 end. 为止4、 实现部分可以使用        A、uses 子句, 如果使用uses子句,则必须紧跟implementation关键字        B、var 语句定义变量        C、定义在接口部分声明的过程、函数        D、定义只在本单元才能调用的过程、函数}implementationuses    unit2;var    pai:single=3.1415926;{       过程1、 定义过程的时候必须与在接口部分完全一样,如果声明用来 var 关键字,则在    定义的时候必须用 var 关键字}procedure Greeting(var strGreet:string) ;begin    writeln(strGreet);end;{       函数1、函数通过函数名返回函数值}function GetSum(var value1,value2:integer):integer;begin    GetSum:=value1 + value2;end;function GetArea(var r:single):single;begin    GetArea := pai * r * r;end;procedure showUnit2();begin    {    1、引用了unit2单元,所以可以引用unit2单元的对象    }    writeln(unit2Var);end;end.

 

三、单元文件 unit2

unit Unit2;interfacevar    unit2Var:integer=33;implementationend.

 

欢迎转载,转载请注明来源。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
delphi 自定义函数声明
delphi 定义全局变量
label 标签
c#中var关键字用法
能说明你的Javascript技术很烂的五个原因
Javascript的匿名函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服