inc
首先是两片在网上搜索的片段。
Include文件。与C++的include不一样。可嵌入Delphi的源代码文件中,Delphi编译是遇$I到include文件时相当于Copy一份inc文件的内容到当前位置,一般用于提取一些重复的每个单元都需要定义的内容,或用于定义通用的编译器指示字条件,甚至可以使用Delphi的inc机制实现C++的范型(可惜不能支持操作符重载)。文本格式,需进源代码库。
摘自“cnpack网站” 《Delphi相关文件扩展名介绍 》
//Delphi可以象C一样用Inc文件
//用编译指令{$I FileName}
///Begin 比如No.1
//File1.txt内容为
const
cText = 'Hello Worlds!';
//Unit1.pas部分内容为
//....
procedure TForm1.Button1Click(Sender: TObject);
{$I File1.txt}
begin
ShowMessage(cText);
end;
end.
//....
//这个例子很普通
///End 比如No.1
///Begin 比如No.2
//File1.txt内容为
const
cText = 'Hello Worlds!';
begin
ShowMessage(cText);
end;
//Unit1.pas部分内容为
//....
procedure TForm1.Button1Click(Sender: TObject);
{$I File1.txt}
end.
//....
//这可没有错
///End 比如No.2
///Begin 比如No.3
//File1.txt内容为
cText);ShowMessage(
//Unit1.pas部分内容为
//....
procedure TForm1.Button1Click(Sender: TObject);
const
cText = 'Hello Worlds!';
begin
ShowMessage({$I File1.txt}{$I File1.txt}cText);
end;
end.
//....
//你能想得出她运行的结果吗?
///End 比如No.3
//其实Delphi Inc就象代码块一样
//但要注意这样是错的 I := 'a {$I File1.txt}'
//zswang(c)20010423
//谢谢关注
摘自csdn 网站 我用Delphi一年[论使用Inc文件的一点心得]
第一篇摘自cnpack上的片段,解释了我一直以来的一个问题。以前曾经使用过一个DGL的泛型库。当时还被同事骂,就一个简单的Key-Value的应用,自己拿list不就实现了。还搞个这么夸张的库。弄得编译的时候还得带一大堆废文件。说了段废话。继续说这个DGL的库,看他的代码那个叫迷茫。Pas结尾的文件就那么几个,怎么搞的。现在终于明白了。他是通过不同的编译开关,引用不同的inc文件,也应了cnpack那位高手说的话“使用Delphi的inc机制实现C++的范型”。嘻嘻~
注:我手头的DGL的版本是1.2