如何动态创建, 使用和释放 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;
~~~~~~~~~~~~~~~~~~~~~~~~~
博客介绍了动态创建、使用和释放TXMLDocument时避免存取违例错误的方法。若TXMLDocument作为组件,生存期由所有者控制;若创建时无所有者,则由IXMLDocument接口控制。动态创建时应将结果分配给IXMLDocument接口,可自动释放,也能明文释放。
2586

被折叠的 条评论
为什么被折叠?



