title: Does de NewImplSource from IOTAModuleCreator automatically "shows" the new unit on the IDE?
body: <p>I'm trying to implement an IDE Wizard with ToolsApi and using the GExperts FAQ (<a href="http://www.gexperts.org/examples/GXModuleCreator.pas" rel="nofollow noreferrer">http://www.gexperts.org/examples/GXModuleCreator.pas</a>) as reference.</p>
  <p>Although the bpl compiles, the unit doesn't shows up on the IDE.
  I'm Using Delphi 10.3.2 Rio.</p>
  <pre><code>unit ModuleCreator;
  
  interface
  
  uses
    SysUtils, Windows, Dialogs, ToolsAPI;
  
  type
    TJIdeWizardSourceFile = class(TInterfacedObject, IOTAFile)
    private
      FSource: string;
    public
      function GetSource: string;
      function GetAge: TDateTime;
      constructor Create(const Source: string);
    end;
  
    TJIdeWizardModuleCreator = class(TInterfacedObject, IOTACreator, IOTAModuleCreator)
    public
      // IOTACreator
      function GetCreatorType: string;
      function GetExisting: Boolean;
      function GetFileSystem: string;
      function GetOwner: IOTAModule;
      function GetUnnamed: Boolean;
      // IOTAModuleCreator
      function GetAncestorName: string;
      function GetImplFileName: string;
      function GetIntfFileName: string;
      function GetFormName: string;
      function GetMainForm: Boolean;
      function GetShowForm: Boolean;
      function GetShowSource: Boolean;
      function NewFormFile(const FormIdent, AncestorIdent: string): IOTAFile;
      function NewImplSource(const ModuleIdent, FormIdent, AncestorIdent: string): IOTAFile;
      function NewIntfSource(const ModuleIdent, FormIdent, AncestorIdent: string): IOTAFile;
      procedure FormCreated(const FormEditor: IOTAFormEditor);
    end;
  
  implementation
  
  { TJIdeWizardModuleCreator }
  
  procedure TJIdeWizardModuleCreator.FormCreated(const FormEditor: IOTAFormEditor);
  begin
    //
  end;
  
  function TJIdeWizardModuleCreator.GetAncestorName: string;
  begin
    Result := 'Form';
  end;
  
  function TJIdeWizardModuleCreator.GetCreatorType: string;
  begin
    Result := sUnit;
  end;
  
  function TJIdeWizardModuleCreator.GetExisting: Boolean;
  begin
    Result := False;
  end;
  
  function TJIdeWizardModuleCreator.GetFileSystem: string;
  begin
    Result := '';
  end;
  
  function TJIdeWizardModuleCreator.GetFormName: string;
  begin
    Result := '';
  end;
  
  function TJIdeWizardModuleCreator.GetImplFileName: string;
  begin
    Result := '';
  end;
  
  function TJIdeWizardModuleCreator.GetIntfFileName: string;
  begin
    Result := '';
  end;
  
  function TJIdeWizardModuleCreator.GetMainForm: Boolean;
  begin
    Result := False;
  end;
  
  function TJIdeWizardModuleCreator.GetOwner: IOTAModule;
  var
    ModuleServices: IOTAModuleServices;
    Module: IOTAModule;
    NewModule: IOTAModule;
  begin
    // You may prefer to return the project group's ActiveProject instead
    Result := nil;
    ModuleServices := (BorlandIDEServices as IOTAModuleServices);
    Module := ModuleServices.CurrentModule;
  
    if Module &lt;&gt; nil then
    begin
      if Module.QueryInterface(IOTAProject, NewModule) = S_OK then
        Result := NewModule
  
      else if Module.OwnerModuleCount &gt; 0 then
      begin
        NewModule := Module.OwnerModules[0];
        if NewModule &lt;&gt; nil then
          if NewModule.QueryInterface(IOTAProject, Result) &lt;&gt; S_OK then
            Result := nil;
      end;
    end;
  end;
  
  function TJIdeWizardModuleCreator.GetShowForm: Boolean;
  begin
    Result := True;
  end;
  
  function TJIdeWizardModuleCreator.GetShowSource: Boolean;
  begin
    Result := True;
  end;
  
  function TJIdeWizardModuleCreator.GetUnnamed: Boolean;
  begin
    Result := True;
  end;
  
  function TJIdeWizardModuleCreator.NewFormFile(const FormIdent, AncestorIdent: string): IOTAFile;
  begin
    Result := nil;
  end;
  
  function TJIdeWizardModuleCreator.NewImplSource(const ModuleIdent, FormIdent, AncestorIdent: string): IOTAFile;
  begin
    // or Result := nil; for the default unit
    Result := nil;
  end;
  
  function TJIdeWizardModuleCreator.NewIntfSource(const ModuleIdent, FormIdent, AncestorIdent: string): IOTAFile;
  begin
    Result := nil;
  end;
  
  { TJIdeWizardSourceFile }
  
  constructor TJIdeWizardSourceFile.Create(const Source: string);
  begin
    FSource := Source;
  end;
  
  function TJIdeWizardSourceFile.GetAge: TDateTime;
  begin
    Result := -1;
  end;
  
  function TJIdeWizardSourceFile.GetSource: string;
  begin
    result := FSource;
  end;
  
  end.
  </code></pre>
  <p>Here is an example of how I´m calling the method &quot;NewImplSource&quot; from IOTAModuleCreator</p>
  <pre><code>  procedure TfrmMapearObjetoRelacional.btnSimpleORMDaoClick(Sender: TObject);
    var
      _Mod: TJIdeWizardModuleCreator;
      _Str: string;
    begin
      _Mod := TJIdeWizardModuleCreator.Create;
      try
        _Str := _Mod.NewImplSource('unit1','','');
        ShowMessage(_Str);
      finally
        FreeAndNil(_Mod);
      end;
    end;
  </code></pre>