procedure RemoveObject(Index: Integer; DestroyObject: Boolean = True);
| Index | Integer。要移除页面对象的基于 0 的索引(0 到 ObjectCount - 1) |
| DestroyObject | Boolean。当为 True(默认)时,移除后释放底层 PDFium 对象。传入 False 从页面分离对象而不释放其内存,例如将其转移到另一个页面时 |
RemoveObject 通过其基于 0 的索引从当前页面删除一个页面对象。有效索引值范围从 0 到 ObjectCount - 1。调用后,页面内容流会自动重新生成,因此更改立即反映
当 DestroyObject 为 True(默认)时,底层 PDFium 对象句柄被释放,其内存被释放。当为 False 时,对象仅从页面分离而不被销毁 — 这在将对象从一个页面移动到另一个页面时很有用,此时调用方取得句柄所有权
因为移除对象会移动所有后续对象的索引,所以在循环中移除多个对象时要小心:从最高索引向下迭代,或在开始循环前收集要移除的索引
// 移除最后一个页面对象
if Pdf1.ObjectCount > 0 then
Pdf1.RemoveObject(Pdf1.ObjectCount - 1);
// 从最高索引向下移除所有对象
var I: Integer;
begin
for I := Pdf1.ObjectCount - 1 downto 0 do
Pdf1.RemoveObject(I);
end;