如何动态创建, 使用和释放 TXMLDocument (不出现存取违例错误)
如果您需要使用动态创建TXMLDocument组件, 一旦您试图释放对象时您也许会得到存取违例错误(access violations).
如果TXMLDocument被作为组件使用, 那么它的生存期由它的所有者控制 (您放置组件的窗体), 如果它创建但没有所有者, 那么它的生存期将由IXMLDocument接口控制. 当动态创建一个TXMLDocument时您应该总是分配结果到一个IXMLDocument接口.
作为一个接口, 它将被自动释放. 如果它是一个本地变量, 它将在方法返回时释放. 您可以以明文方式释放它:
XMLDoc := nil;
~~~~~~~~~~~~~~~~~~~~~~~~~
XMLDoc := TXMLDocument.Create(nil) ;
try
XMLDoc.Active := True;
//在这里使用 XMLDoc
XMLDoc.Active := False;
finally
XMLDoc := nil;
end;
~~~~~~~~~~~~~~~~~~~~~~~~~