我正在使用 Delphi 7
和 Delphi 2006
开发一个组件,需要使用一个单元,需要将该单元自动添加到包含该组件的项目的 .dpr
文件中。
就像 Eureka Log 自动向项目文件添加 'ExceptionLog' 单元一样:
请问是否有办法在将我的组件拖放到项目任何窗体上时,以编程方式将一个单元添加到项目文件中?
我正在使用 Delphi 7
和 Delphi 2006
开发一个组件,需要使用一个单元,需要将该单元自动添加到包含该组件的项目的 .dpr
文件中。
就像 Eureka Log 自动向项目文件添加 'ExceptionLog' 单元一样:
请问是否有办法在将我的组件拖放到项目任何窗体上时,以编程方式将一个单元添加到项目文件中?
您很可能需要使用Open Tools API。
此外,可能需要为组件编写TSelectionEditor以触发添加单元(我会尝试RequiresUnit方法)。
虽然有一种简单的方法只需将单元添加到活动项目中(下面的代码),但这仅适用于活动项目,而不一定是要向其中添加组件的窗体所属的项目。此外,它会在uses子句的末尾添加单元。
uses
ToolsAPI;
var
currentProject: IOTAProject;
begin
currentProject := GetActiveProject();
currentProject.AddFile('MyUnit.pas', True);
AddFile
会添加一个类似于 uses MyUnit in 'MyUnit.pas'
的项目,但这对于库组件来说并不合适。该组件应该只添加一个单元引用,而不是文件引用,如问题中的图片所示。 - Rob KennedyIsUnitOrForm
参数不应该是 True
吗? - NGLN奇怪。
我曾经将默认 dpr 设置为几乎什么都没有,结果我的工具箱非常空。因此,如果它在我的工具箱中,它就在 dpr 中 - 你遇到了什么问题 - 通常如果它在工具箱中,它已经在 dpr 中了。
dpr
中有一个 unit
,我不能要求或依赖于用户将其放置在那里...所以我需要自动化这个过程。 - PresleyDias进入项目 > Eurekalog 选项,然后禁用 Eurekalog。