假设我在某个脚本中保存了这个函数:
function Add(a,b:integer):integer;
begin
result:=a+b;
end;
我有另一个脚本如下:
var
a,b,c:integer;
a:=1;
b:=2;
c:=Add(a,b);
println(inttoStr(c));
如何在Delphi中使用dwscript编译这两个脚本并从第二个脚本调用第一个脚本?
假设一个文件名为"file1.extension",其内容为:
function Add(a,b:integer):integer;
begin
result:=a+b;
end;
以及另一个名为"main.extension"的文件,其中包含内容:
var
a,b,c:integer;
a:=1;
b:=2;
c:=Add(a,b);
println(inttoStr(c));
您需要在"main.extension"文件的开头添加以下行:
// note that file name is case sensitive
// file1.extension <> FILE1.EXTENSION
// include_once is to solve cycle-includes
// i.e. file1.extension includes main.extension and vice-versa
{$include_once 'file1.extension'}
// or include if file1.extension does not require functions/objects/variables/etc.
// from main.extension
{$include 'file1.extension'}
我建议使用{$include_once…}而不是{$include…}。
除了使用Dorin答案中列出的$include/$include_one之外,如果您在SVN(2.3)版本中,还可以使用带有"uses"语句的更传统的单位。
单元可以是带有接口/实现的"经典"单元,也可以是遵循扩展脚本语法的混合单元(只需省略"interface"关键字并开始声明/实现away)。
将源传递给编译器的最简单方法是使用事件(OnInclude表示includes源,OnNeedUnit表示units源),但也可以通过指定CompileFileSystem来传递它们。