Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   XML Document erstellen in DLL? (https://www.delphipraxis.net/193054-xml-document-erstellen-dll.html)

sko1 15. Jun 2017 09:13

XML Document erstellen in DLL?
 
Hallo,

in Projekten die Formulare beinhalten, nutze ich

Delphi-Quellcode:
...
var
  XMLDocument1: TXMLDocument;
begin
  // XMLDocument nie Create mit NIL! (führt zu undefinierbaren Fehlern!)
  XMLDocument1 := TXMLDocument.Create(FormMain);
  ...
und hatte da immer den obigen Kommentar drin.
Was aber mach ich jetzt in einer DLL, was setze ich da als Owner?

Ciao
Stefan

Mavarik 15. Jun 2017 09:34

AW: XML Document erstellen in DLL?
 
Zitat:

Zitat von sko1 (Beitrag 1374574)
und hatte da immer den obigen Kommentar drin.

Tja - welche Fehler? Speicher-Leaks?
Was anderes kann ich mir nicht vorstellen...

sakura 15. Jun 2017 09:43

AW: XML Document erstellen in DLL?
 
Ein glänzendes Beispiel für einen schlechten Kommentar.

Ich bin gerade durch den Xml.XmlDoc.TXmlDocument Quelltext durch. Der Owner hat absolut keine Auswirkungen auf die Arbeit mit Xml. Du kannst völlig gefahrlos
Delphi-Quellcode:
nil
übergeben.

...:cat:..

P.S.: Und entferne diesen Kommentar überall.
P.P.S.: Wenn Du das Objekt am Ende auf wieder frei gibst (Destroy bzw. Free), dann fährst Du mit
Delphi-Quellcode:
nil
sogar besser.

TiGü 15. Jun 2017 10:09

AW: XML Document erstellen in DLL?
 
http://docwiki.embarcadero.com/Libra...NewXMLDocument

Und einfach mit http://docwiki.embarcadero.com/Libra...f.IXMLDocument arbeiten.

dummzeuch 15. Jun 2017 10:46

AW: XML Document erstellen in DLL?
 
An alle, die geantwortet haben, ein Owner sei nicht notwendig:

Ich habe auch die Erfahrung gemacht, dass NIL als Owner immer wieder komische Seiteneffekte hat, die nicht auftreten, wenn man ein Formular verwendet. Es müsste allerdings auch mit einem Datenmodul funktionieren, das habe ich allerdings nie probiert. Für eine DLL bietet sich das aber an.

Wenn Ihr diese Fehler nie hatte, seid froh, denn mich haben sie ziemlich viel Zeit und Nerven gekostet. Vielleicht ist das auch abhängig von der verwendeten Delphi-Version.

sko1 15. Jun 2017 13:54

AW: XML Document erstellen in DLL?
 
Na dann lag ich ja doch nicht ganz so falsch!

Danke
Ciao
Stefan

hoika 15. Jun 2017 13:58

AW: XML Document erstellen in DLL?
 
Hallo,
der Owner gibt die Klasse ja wieder frei (<>nil natürlich).
Geht denn Application als Ersatz?

jus 16. Jun 2017 00:01

AW: XML Document erstellen in DLL?
 
Hallo,

ich muß zugeben, dass ich auch ein sehr ähnliches Kommentar bei mir drin hatte :oops:, da es auch bei mir knallte, wenn kein owner drin war. Ich bin aber durch Forumsuche zufällig auf eine Lösung gestossen. Das Problem wurde nämlich schon mal in einem älteren Beitrag diskutiert und zwar hier.
Die Lösung ist einfach wie folgt:
Delphi-Quellcode:
...
var
  XMLDocument1: IXMLDocument; //<----hier auf IXMLDocument ändern
begin
  // XMLDocument nie Create mit NIL! (führt zu undefinierbaren Fehlern!)
  XMLDocument1 := TXMLDocument.Create(nil); //<----hier nil
  ...
Bei dieser Interfacedeklaration braucht man es nicht einmal freigeben :wink: .

Lg,
jus


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz