Adding a unit automatically to the project

3.8k views Asked by At

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

There are 3 answers

4
Stefan Glienke On BEST ANSWER

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.

2
BugFinder On

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.

1
MajidTaheri On

go Project > Eurekalog Options and disable Eurekalog.