4

i have a problem compiling my Delphi code. I have 3 classes, XmlFileManager (concrete), XmlNodeManager (abstract), XmlEnpManager (child of XmlNodeManager and concrete). Below, a little of definition class code:

XmlFileManager

unit XmlFileManager;
interface
uses
  xmldom, XMLIntf, msxmldom, XMLDoc, SysUtils, DateUtils, Classes, Dialogs,
  XmlNodeManager, XmlEnpManager;
type
  TXmlFileManager = class
     [...]
  end;
[...]
end.

XmlNodeManager

unit XmlNodeManager;
interface
uses
  xmldom, XMLIntf, msxmldom, XMLDoc, SysUtils, DateUtils, Classes, Dialogs,
  XmlFileManager;
type
  TXmlNodeManager = class
     [...]
  end;
[...]
end.

XmlEnpManager

unit XmlEnpManager;

interface
uses
  xmldom, XMLIntf, msxmldom, XMLDoc, SysUtils, DateUtils, Classes, Dialogs,
  XmlFileManager,  XmlNodeManager;

type
  TXmlEnpManager = class (TXmlNodeManager)
      [...]
  end;
[...]
end.

In the XmlNodeManager and XmlEnpManager, not recognize TXmlFileManager class. An whe i compile, the compilation fails with message:

[dcc32 Fatal Error] SiGAS.dpr(23): F1026 File not found: 'XmlManager.dcu'

In the past, the XmlFileManager was called XmlManager. Any ideas ?.

My .dpr:

uses
  Forms,
  Main in 'forms\Main.pas' {Principal},
  Globals in 'units\Globals.pas',
  CrearProyectoForm in 'forms\CrearProyectoForm.pas' {NuevoProyecto},
  Validadores in 'units\Validadores.pas',
  IdiomaClass in 'units\IdiomaClass.pas',
  IdiomaCastellanoClass in 'units\IdiomaCastellanoClass.pas',
  ExcelFileManagerClass in 'units\ExcelFileManagerClass.pas',
  SeleccionarIdioma in 'forms\SeleccionarIdioma.pas' {SelectLang},
  EnpView in 'forms\EnpView.pas' {ENP},
  EnpViewGeneric in 'forms\EnpViewGeneric.pas' {EnpGeneric},
  Vcl.Themes,
  Vcl.Styles,
  EnpViewAdd in 'forms\EnpViewAdd.pas' {EnpAdd},
  EnpViewAddAfter in 'forms\EnpViewAddAfter.pas' {EnpAddAfter},
  EnpViewEdit in 'forms\EnpViewEdit.pas' {EnpEdit},
  EnpInicial in 'forms\EnpInicial.pas' {ENPViewInicial},
  XmlFileManager in 'units\XmlFileManager.pas',
  XmlNodeManager in 'units\XmlNodeManager.pas',
  XmlEnpManager in 'units\XmlEnpManager.pas';
ramiromd
  • 2,019
  • 8
  • 33
  • 62

1 Answers1

7

Your main source file, SiGAS.dpr, still has it listed as XmlManager, so...

Open your *.dpr file (it is just Delphi code) and fix the unit name in the uses clause, then rebuild.

w5m
  • 2,286
  • 3
  • 34
  • 46
Eugene Ryzhikov
  • 17,131
  • 3
  • 38
  • 60
  • Open your `*.dpr` file,it is just a Delphi code, and fix the unit name in the `uses` close. – Eugene Ryzhikov Aug 15 '13 at 14:14
  • 1
    +1, but it would be better if you edited your answer and provided the info on how to fix it there, instead of burying it in the comments. – Ken White Aug 15 '13 at 14:33
  • @eugener thanks for reply, again. I edit the post with the .dpr "uses" content. All files, are ok. I dont have "XmlManager" anymore, why the message persist ?. – ramiromd Aug 15 '13 at 15:24
  • is message exactly the same? did you do full rebuild? – Eugene Ryzhikov Aug 15 '13 at 15:50
  • Rebuild from project -> build, and the problem disappeared. But, now, have problem of circular unit reference xD. But, is topic for other post. – ramiromd Aug 15 '13 at 16:17
  • Good to hear! There is only one way to solve circular unit ref - move all the units you don't need from interface sections to implementation sections – Eugene Ryzhikov Aug 15 '13 at 18:18