Delphi EXPERT ToolServices.getCurrentFile失败

Delphi EXPERT ToolServices.getCurrentFile失败,delphi,delphi-xe,Delphi,Delphi Xe,获取Delphi XE专家正在处理的当前文件的新方法是什么 以前在Delphi 5-7中,我们使用了ToolServices.getCurrentFile可能不推荐使用的单元ToolIntf,ExptIntf等不再工作。您可以改用IOTAModuleServices.CurrentModule。下面是一个简单的例子: function GetCurrentEditorFileName: string; var Module: IOTAModule; Editor: IOTAEditor;

获取Delphi XE专家正在处理的当前文件的新方法是什么


以前在Delphi 5-7中,我们使用了ToolServices.getCurrentFile

可能不推荐使用的单元
ToolIntf
ExptIntf
等不再工作。您可以改用
IOTAModuleServices.CurrentModule
。下面是一个简单的例子:

function GetCurrentEditorFileName: string;
var
  Module: IOTAModule;
  Editor: IOTAEditor;
begin
  Result := '';
  Module := (BorlandIDEServices as IOTAModuleServices).CurrentModule;
  if Assigned(Module) then
  begin
    Editor := Module.CurrentEditor;
    if Assigned(Editor) then
      Result := Editor.FileName;
  end;
end;

另一种方法是将“编辑器中的文件名”作为参数传递给工具$EDNAME

您必须向我们展示更多信息。这是你写的专家,还是你从其他地方得到的专家?它是如何失败的?你可以通过找到bug并修复它来修复它。我已经编辑了这篇文章。问题是Delphi XE中引入的中断接口,但我还找不到解决方案。我可以通过询问如何在DelphiToolsAPI.Still-1中获取当前文件来重新表述这个问题。我之前评论中的所有内容仍然适用。好的,我正在努力。ToolServices是公开IDE的已弃用单元中的引用。简单地说,在加载expert时,它不是由delphi初始化的。我必须找到另一种方法来获取编辑器中正在处理的当前文件。在您点击-1之前,尝试调查一下问题会更有帮助+1 TOndrej的正确答案。谢谢RBA,我认为这是一个合理的问题。@RBA:OP阅读评论并提供其中要求的信息更有帮助。如果问题中没有信息,回答起来就困难多了。如果你需要帮助,当人们问你时,提供他们需要帮助的东西——如果他们不得不猜测,那就需要更多的工作(这里的帮助是免费的,记得吗?)。“我有错误”或“它不起作用”没有给任何人提供任何帮助。如果你有错误,准确地说出错误是什么;没有这些信息,我们就瞎了+1到TOndrej学习心理调试技能,不过。:)这可能适用于向导,但不适用于专家。专家通常在IDE中运行(作为包),因此不获取命令行参数;向导可以是外部可执行文件,并且可以获取参数。