Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
2. Aug 2015
Du erzeugst hier eine reference-counted Interface-Instanz.
Sobald der Referenz-Zähler einmal erhöht wurde und wieder auf 0 geht, wird die Instanz verworfen. Gibst du jetzt den Owner mit an, so wird der Referenz-Zähler auf 1 gesetzt und die Instanz verschwindet mit dem Owner. Hier kannst du gefahrlos mit der normalen Klassen-Referenz arbeiten.
Ohne Owner bleibt der Zähler erst mal auf 0,...
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
2. Aug 2015
Du sollst auch nur das machen, was ich dir gesagt habe.
Ändere nur deinen Original-Code wie folgt ab:
var
XmlDok: {TXmlDocument} IXmlDocument;
begin
// keine Änderung am Original-Code!
XmlDok := TXmlDocument.Create( nil );
...
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
2. Aug 2015
Das Problem liegt in der gemischten Verwendung von Interfaces und der Klassen-Instanz.
Lösung: XmlDok:IXmlDocument;, dann klappt es auch ohne Owner