AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XML Document erstellen in DLL?

Ein Thema von sko1 · begonnen am 15. Jun 2017 · letzter Beitrag vom 16. Jun 2017
Antwort Antwort
sko1

Registriert seit: 27. Jan 2017
588 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

XML Document erstellen in DLL?

  Alt 15. Jun 2017, 10:13
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
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.142 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: XML Document erstellen in DLL?

  Alt 15. Jun 2017, 10:34
und hatte da immer den obigen Kommentar drin.
Tja - welche Fehler? Speicher-Leaks?
Was anderes kann ich mir nicht vorstellen...
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#3

AW: XML Document erstellen in DLL?

  Alt 15. Jun 2017, 10:43
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 nil übergeben.

.....

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 nil sogar besser.
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: XML Document erstellen in DLL?

  Alt 15. Jun 2017, 11:09
http://docwiki.embarcadero.com/Libra...NewXMLDocument

Und einfach mit http://docwiki.embarcadero.com/Libra...f.IXMLDocument arbeiten.
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.596 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: XML Document erstellen in DLL?

  Alt 15. Jun 2017, 11:46
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.
Thomas Mueller
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
588 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: XML Document erstellen in DLL?

  Alt 15. Jun 2017, 14:54
Na dann lag ich ja doch nicht ganz so falsch!

Danke
Ciao
Stefan
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: XML Document erstellen in DLL?

  Alt 15. Jun 2017, 14:58
Hallo,
der Owner gibt die Klasse ja wieder frei (<>nil natürlich).
Geht denn Application als Ersatz?
Heiko
  Mit Zitat antworten Zitat
jus

Registriert seit: 22. Jan 2005
344 Beiträge
 
Delphi 2007 Professional
 
#8

AW: XML Document erstellen in DLL?

  Alt 16. Jun 2017, 01:01
Hallo,

ich muß zugeben, dass ich auch ein sehr ähnliches Kommentar bei mir drin hatte , 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 .

Lg,
jus
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:56 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