如何从Delphi的开放工具API中检索新的单元名称

时间:2010-11-16 16:27:45

标签: delphi wizard delphi-xe opentools

我在Delphi XE中编写了一个向导,它运行正常。但是,我还没有弄清楚如何访问Delphi的OTA可以创建的生成的默认单元名称(或表单名称或项目名称)。

在我的旧式向导中,我能够调用ToolServices.GetNewModuleName来发现在生成关联源文件时可以使用的可用单元和表单名称。今天的开放工具API中的等价物是什么?

根据ToolsAPI单元注释,我应该从IOTAModuleCreator.GetImplFileName方法返回一个空白,让Delphi生成文件名。我从这个方法返回一个空字符串,但仍然无法看到我可以访问Delphi正在生成的文件名。

3 个答案:

答案 0 :(得分:4)

有一种获取新表单和单位名称的具体方法:

(BorlandIDEServices as IOTAModuleServices).GetNewModuleAndClassName(    '',UnitIdent,FormName,FileName);

我在一些例子中使用它似乎工作正常。

答案 1 :(得分:2)

方法IOTAModuleCreator.NewImplSource有一个“ModuleIdent”参数,它是单位名称。

答案 2 :(得分:2)

在我的测试中,它按预期工作(ModuleIdent方法中的NewImplSource参数接收新的单位名称)。再次检查您的实施,特别是确保:

  • IOTACreator.GetUnnamed返回True
  • IOTACreator.GetExisting返回False
  • IOTACreator.GetCreatorType会返回相应的标识符(sUnitsForm等) - 我不确定这一点,但也可能很重要

Here是一个有效的例子。我只是检查了它,代码似乎仍然在Delphi XE中按预期工作。