![]() |
XML Document erstellen in DLL?
Hallo,
in Projekten die Formulare beinhalten, nutze ich
Delphi-Quellcode:
und hatte da immer den obigen Kommentar drin.
...
var XMLDocument1: TXMLDocument; begin // XMLDocument nie Create mit NIL! (führt zu undefinierbaren Fehlern!) XMLDocument1 := TXMLDocument.Create(FormMain); ... Was aber mach ich jetzt in einer DLL, was setze ich da als Owner? Ciao Stefan |
AW: XML Document erstellen in DLL?
Zitat:
Was anderes kann ich mir nicht vorstellen... |
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:
übergeben.
nil
...: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:
sogar besser.
nil
|
AW: XML Document erstellen in DLL?
![]() Und einfach mit ![]() |
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. |
AW: XML Document erstellen in DLL?
Na dann lag ich ja doch nicht ganz so falsch!
Danke Ciao Stefan |
AW: XML Document erstellen in DLL?
Hallo,
der Owner gibt die Klasse ja wieder frei (<>nil natürlich). Geht denn Application als Ersatz? |
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 ![]() Die Lösung ist einfach wie folgt:
Delphi-Quellcode:
Bei dieser Interfacedeklaration braucht man es nicht einmal freigeben :wink: .
...
var XMLDocument1: IXMLDocument; //<----hier auf IXMLDocument ändern begin // XMLDocument nie Create mit NIL! (führt zu undefinierbaren Fehlern!) XMLDocument1 := TXMLDocument.Create(nil); //<----hier nil ... Lg, jus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz