什么取代了ToolServices.GetUnitCount?

时间:2013-04-16 02:56:58

标签: delphi delphi-xe2 delphi-xe

我正在尝试恢复和编译XE2下的一些旧资源。

使用'ToolServices.GetUnitCount'的例程,它在ExptIntf.pas中定义(不推荐使用)为ToolServices:TIToolServices = nil;

并且,TIToolServices在ToolIntf.pas(也已弃用)中定义为TIToolServices = class(TInterface)

最后,GetUnitCount被描述为“返回属于项目的当前单位数”。

问题是:我如何(不使用ExptIntf.pas或ToolIntf.pas)获得属于该项目的当前单位数?

2 个答案:

答案 0 :(得分:1)

正确的回答取决于你的代码的作用,但好的候选人可能是:

  • IOTAProject40

    { Return the number of owned modules }
    function GetModuleCount: Integer;
    { Return the Indexed owned Module Info }
    function GetModule(Index: Integer): IOTAModuleInfo;
    { Return the Project options }
    
  • IOTAProject140

    { Returns a list of fully qualified file names.  This will contain files
      that do not show up in the project manager, for example, the project's
      .res file }
    procedure GetCompleteFileList(FileList: TStrings);
    

两者都是IOTAProject界面的祖先,所以你手边有两种口味。要使用Open Tools API,您必须使用ToolsAPI单元。看一下Delphi安装的source\ToolsAPI文件夹。

答案 1 :(得分:0)

XE2和XE3帮助文件中有关于'Extending the API'的文档,它提供了有关使用模块和文件以及使用编辑器资源的信息。 'EditorViewAPI'的演示可能对您有所帮助。所有服务都可通过ToolsAPI和IOTAServices接口获得。与早期版本相比,文档和样本要多得多。 EditorViewAPI是一个实际安装的示例应用程序,您可以通过实验来查看其工作原理。