• 编译开关


    1. 先用一般的文书编辑器建好一个 MySet.inc 的普通文本文件 ,  内容为 :

    {$H+}{$DEFINE _Proversion}

     2.在我们的程序中 ,  加入一列 {$I MySet.inc},  例如 :

    unit Unit1;

    {$I MySet.inc}

    interface

    implementation

    {$R *.DFM}

    procedure TForm1.Button1Click(Sender: TObject);

    begin

    {$IFDEF _ProVersion}

      ShowMessage(' 专业版 ');

    {$Else}

      ShowMessage(' 只有专业版才有此功能 ');

    {$ENDIF}

    end;

    这是子程序的观念嘛 !  没错 ,  就是这么简单而已 ,  以后如果有任何变化 ,  修改 MySet.INC,  然后 Project/Buile All 即可 ,  实在

    是够简单的了。基本动作会了之后 ,  让我告诉你多一点有关 {$I 文件名称 } 的事。

    3.一旦应用了 {$I 文件名称 },几乎等于 Compiler 在编译时,让 Compiler 将这个档案的内容贴进我们的程序中的那个位置。

       如果没有注明扩展名 , Delphi 预设这个档案是 .PAS 。

        如果在项目的目录中找不到这个档案的话 , Delphi 会陆续搜寻 Tools/Options/Library 中的 Library Path 中的目录。

    另外 ,  当您写作了一个 DLL,  使用者在使用其中的函数前必须宣告过 ,  如果能够一并提供这些函数的宣告文件 ,  使用者只要一行 {$I

    xxx}即可 ,  是不是很方便呢 ?


    其实 {$J+} 时还有一个妙用 ,  那就是宣告出类似 C 语言 static 的变量 ,  换句话说 ,产生了一个与 Application 相同生命周期的变量。

    在这种情形下 ,  变量只在第一次使用时才会建立 ,  函数或程序结束时 ,  该变量也不会消灭 ,  下一次再呼叫到这个函数或程序时 ,  我

    们仍然可以参考到上次执行结束时的值。让我们试一下这个例子 :

    {$J+}

    procedure TForm1.Button1Click(Sender: TObject);

    const

      i: integer = 0;

    begin

      ShowMessage(IntToStr(i));

      Inc(i);

      ShowMessage(IntToStr(i));

    end;

    第一次执行时, 我们分别会看到「0」「1」, 再点一次这个按钮时, 看到的将是「1」「2」。

  • 相关阅读:
    ubuntu中,update,upgrade出现问题总结
    Xshell7连接kali linux(2021.9.13)
    pycharm安装igraph,简单实例(2021.8.21)
    mininet可视化(2021.6.25)
    冷知识:你会搜索信息吗
    论文写作注意事项
    onenote2016怎么自动备份笔记本到本地?
    Cbench、Scapy、sflow、iperf——学习中
    Zookeeper、Docker——学习中
    OpenStack管理、KVM、ClouldSim部署——学习中
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940803.html
Copyright © 2020-2023  润新知