我正在尝试恢复和编译XE2下的一些旧资源。
使用'ToolServices.GetUnitCount'的例程,它在ExptIntf.pas中定义(不推荐使用)为ToolServices:TIToolServices = nil;
并且,TIToolServices在ToolIntf.pas(也已弃用)中定义为TIToolServices = class(TInterface)
最后,GetUnitCount被描述为“返回属于项目的当前单位数”。
问题是:我如何(不使用ExptIntf.pas或ToolIntf.pas)获得属于该项目的当前单位数?
答案 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是一个实际安装的示例应用程序,您可以通过实验来查看其工作原理。