从另一个脚本调用脚本



假设我在某个脚本中保存了这个函数:

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来传递它们。

最新更新