zoukankan      html  css  js  c++  java
  • volcanol的工控博客

    一、工程文件

    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
    }
    interface
    var
        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、定义只在本单元才能调用的过程、函数
    }
    implementation
    uses
        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;
    
    interface
    var
        unit2Var:integer=33;
    implementation
    
    end.

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

  • 相关阅读:
    GridView与ArrayAdapter的结合
    翻翻git之---闪烁动画的TextView RevealTextView
    希捷硬盘扩容软件-----DiscWizard
    项目管理的酸甜苦辣
    【转】Bootloader之uBoot简介(转)
    【转】uboot移植(一)BootLoader基本概念
    【转】U-boot分析与移植(1)----bootloader分析
    【转】MIPS交叉编译环境的建立
    【转】RTSP实例解析
    【转】Eclipse快捷键 10个最有用的快捷键----不错
  • 原文地址:https://www.cnblogs.com/volcanol/p/5314843.html
Copyright © 2011-2022 走看看