• Delphi项目构成之单元文件PAS


    单元文件是Pascal源文件,扩展名为.pas

    有三种类型的单元文件:

    1. 窗体/数据模块和框架的单元文件(form/data module and frame units),一般由Delphi自动生成。
    2. 组件的单元文件(component units),由您或者Delphi生成。
    3. 通用的单元文件(general-purpose units),有您创建。

    下面让我们看看基本的Pascal单元文件结构是如何的?

    Step1、在主菜单上选择【File | New | Unit】,Delphi将创建一个新的单元,并在Code Editor中显示出。

    0008

    Step2、让我们来看看一个最简单的pascal单元,包括了四个关键字unitinterfaceimplementationend

    0009

    比较全的单元如下,请看注释:

    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;
     
    interface
     
    uses            { 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过程}
     
    implementation
    uses            { 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单元结束

    用来执行启动和清理的代码,初始化中的任何代码在其单元载入内存时都要被执行,结束段中的任何代码在单元从内存中清理前都要被执行。

    可以只有一个初始化段,但不能只有结束段,而没有初始化段。

  • 相关阅读:
    HIDS逐渐的成为主流 java程序员
    怎样做反向域名解析(反向DNS解析)? java程序员
    入侵检测系统的性能的辨别(2) java程序员
    Codeforces Round #146 (Div. 2)
    usaco1.34Prime Cryptarithm
    poj3667 hotel(线段树区间合并)
    poj1330Nearest Common Ancestors(水LCA)
    hdu4135Coprime(容斥原理)
    hdu1541Stars(树状数组)
    usaco 1.43Arithmetic Progressions
  • 原文地址:https://www.cnblogs.com/qi123/p/5109246.html
Copyright © 2020-2023  润新知