如何释放动态创建的TXMLDocument

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何动态创建, 使用和释放 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;
~~~~~~~~~~~~~~~~~~~~~~~~~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值