博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
delphi 编译开关
阅读量:5340 次
发布时间:2019-06-15

本文共 1166 字,大约阅读时间需要 3 分钟。

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」。

转载于:https://www.cnblogs.com/lzj1981/archive/2013/04/28/3049155.html

你可能感兴趣的文章
[转]AI+RPA 融合更智能
查看>>
Javascript拖拽&拖放系列文章1之offsetParent属性
查看>>
OWIN的理解和实践(二) – Host和Server的开发
查看>>
VS DLL 复制本地
查看>>
异常处理原则
查看>>
scrapy框架之递归解析和post请求
查看>>
Java 之泛型通配符 ? extends T 与 ? super T 解惑
查看>>
关于小程序后台post不到数据的问题
查看>>
mysql left join,right join,inner join用法分析
查看>>
Oracle scott解锁 以及连接数据库
查看>>
浅谈C语言中的联合体
查看>>
【2017-05-03】winform打印控件、事件对象和事件数据、MDI窗体容器
查看>>
照着书写的几个经典排序算法(插入、希尔、堆、归并、快排)
查看>>
[Swift]LeetCode753. 破解保险箱 | Cracking the Safe
查看>>
2017-2018-1 20155330《信息安全技术》实验二——Windows口令破解
查看>>
20155210 实验一 逆向与Bof基础
查看>>
20个有用的正则表达式
查看>>
PTA 02-线性结构3 Reversing Linked List (25分)
查看>>
.Net开源框架列表【转载】
查看>>
(转)Linux内核之进程和系统调用
查看>>