Adding a unit automatically to the project

2019-02-13 20:37发布

I am working on a component in Delphi 7 and Delphi 2006, where I am using a unit which I need to add to the .dpr file of the project on which the component is dropped automatically. Like the way Eureka Log automatically adds the unit 'ExceptionLog' to the project file:

enter image description here

Can anyone tell me how to programmatically add a unit to the project file when I drop my component on any form in the project?

3条回答
老娘就宠你
2楼-- · 2019-02-13 20:56

Odd.

I used to set my default dpr to contain next to nothing as a result my toolbox was very empty. So if it was in my toolbox it was in the dpr - what are you having problems with - normally if its in the toolbox, its already in the dpr.

查看更多
唯我独甜
3楼-- · 2019-02-13 21:13

You most likely have to use the Open Tools API for that.

Also it might require to write a TSelectionEditor for your component to trigger the adding of the unit (I would try the RequiresUnit method).

While there is an easy way to just add a unit to the active project (code below) this just works for the active project which might not be the project the form belongs to you are adding the component to. Also it adds the unit at the end of the uses clause.

uses
  ToolsAPI;

var
  currentProject: IOTAProject;
begin
  currentProject := GetActiveProject();
  currentProject.AddFile('MyUnit.pas', True);

You can check the GExperts source code because it contains a class (TUsesManager) that can parse units and modify the uses clause.

查看更多
霸刀☆藐视天下
4楼-- · 2019-02-13 21:14

go Project > Eurekalog Options and disable Eurekalog.

查看更多
登录 后发表回答