Avatar billede sharpe Nybegynder
25. august 2007 - 23:35 Der er 7 kommentarer

Class TXMLDocument not found

Hej,

Jeg har et program med to units, UMain (til formen) og UConfiguration (til konfiguration). UConfiguration er en klasse, der har en private member af typen TXMLDocument (uses: xmldom, XMLIntf, XMLDoc, SysUtils). Når jeg forsøger at køre mit program, får jeg en besked, der ser således ude:

Project test.exe raised exception call EClassNotFound with message 'Class TXMLDocument not found'. Process stopped. Use Step or Run to continue.

Jeg får kun denne fejl når jeg bruger min egen klasse med TXMLDocument som en member. Definerer og bruger jeg en variabel af typen TXMLDocument direkte i UMain, får jeg ingen problemer.

Er der nogen, der kan hjælpe?

Pft!
Avatar billede sharpe Nybegynder
25. august 2007 - 23:37 #1
UMain:
...
XMLConfiguration: TXMLFile;
XMLConfiguration.Create(ConfigurationFile);
...


UConfiguration:
...
uses
  xmldom, XMLIntf, XMLDoc, SysUtils;

type
  TXMLFile = class
  private
    MXMLDocument: TXMLDocument;
  public
    constructor Create(XMLFile: string);
    destructor Destroy;
    property XMLDocument: TXMLDocument read MXMLDocument write MXMLDocument;

  end;

implementation

{ TXMLFile }

constructor TXMLFile.Create(XMLFile: string);
begin
  if FileExists(XMLFile) then
    XMLDocument.FileName := XMLFile;
end;

destructor TXMLFile.Destroy;
begin
  MXMLDocument.Free;
end;

end.
Avatar billede kfz Nybegynder
26. august 2007 - 11:56 #2
du glemmer i din create at kalde: XMLDocument := TXMLDocument.Create;
Avatar billede kfz Nybegynder
26. august 2007 - 11:58 #3
desuden bruger du i din create, XMLDocument, og i din Destroy, MXMLDocument.
er det bevidst?
Avatar billede sharpe Nybegynder
26. august 2007 - 15:08 #4
Din anden kommentar var min fejl, som jeg nu har rettet. Tak :o)
Selv efter at have created objected, virker det ikke, samme fejl.
Avatar billede kfz Nybegynder
26. august 2007 - 22:29 #5
prøv at lav en messagedialog efter "if FileExists(XMLFile) then", for at se om den finder filen.
Avatar billede sharpe Nybegynder
27. august 2007 - 20:58 #6
Filen eksisterer, den kan sagtens findes.
Avatar billede sharpe Nybegynder
28. august 2007 - 10:59 #7
Jeg har lavet følgende ændringer i min XML klasse:

unit UXMLFile;

interface

uses
  xmldom, XMLIntf, XMLDoc;

type
  TXMLFile = class(TXMLDocument)
  public
    constructor Create(XMLFile: string);
    destructor Destroy; override;
  end;

implementation


{ TXMLFile }

constructor TXMLFile.Create(XMLFile: string);
begin
  inherited Create(XMLFile);
end;

destructor TXMLFile.Destroy;
begin
  inherited;
end;

end.

Nu får jeg en "Access Violation" når jeg forsøger at læse data fra XML filen. Det forstår jeg ikke, idet objektet er blevet "Created" men der må være et eller andet jeg  har glemt at gøre.

Jeg glæder mig til at høre fra dig.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester