1

我已将 PascalScript 引擎包含在我的软件中。我的用户现在想为这个引擎编写一整套脚本,并且想知道是否可以通过include或命令包含其他脚本uses

他想做的是编写一个包含各种常量/变量的脚本和另一个执行逻辑的脚本。最后,他想将常量包含在他的逻辑脚本中。

我希望这足够清楚,可以理解。

4

3 回答 3

3

我发现,这是如何做到的:PascalScript 编译器的 UsePreprocessor 属性需要设置为 true。如果是这样,您现在可以使用以下预处理器命令:

{$I 文件名.txt}

您还需要使用我在网上找到的以下示例来实现编译器的 OnNeedFile 事件:

function TForm1.ceNeedFile(Sender: TObject; const OrginFileName: String;
var FileName, Output: String): Boolean;
var
  path: string;
  f: TFileStream;
begin
  Path := ExtractFilePath(ParamStr(0)) + FileName;
  try
    F := TFileStream.Create(Path, fmOpenRead or fmShareDenyWrite);
  except
    Result := false;
    exit;
  end;
  try
    SetLength(Output, f.Size);
    f.Read(Output[1], Length(Output));
  finally
    f.Free;
  end;
  Result := True;
end;
于 2011-05-26T14:44:05.550 回答
0

(请修正您的问题标题)

我不完全确定,但 afaik Pascalscript 没有“文件”概念。您可以在将它们传递给解释器之前简单地连接这两个部分,或者让一个小型预处理器查找 {$I } 包含语句并查找要插入的代码。

于 2011-05-26T08:26:47.233 回答
0

如果您将条件定义设置为PS_USESSUPPORT 并且在OnFindUnknownFile事件中您必须将 pas 文件内容加载到输出字符串中。

然后您可以使用“使用 XYZ;”。

于 2021-03-16T06:06:00.633 回答