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 の場合、オブジェクトは破棄されずにページから切り離されるだけです。これは、呼び出し側がハンドルの所有権を引き取る、オブジェクトのページ間移動などに役立ちます
オブジェクトを削除すると後続のすべてのオブジェクトのインデックスがずれるため、ループで複数のオブジェクトを削除するときは注意してください。最高インデックスから降順に反復するか、ループを始める前に削除対象のインデックスを収集してください
// Remove the last page object
if Pdf1.ObjectCount > 0 then
Pdf1.RemoveObject(Pdf1.ObjectCount - 1);
// Remove all objects from highest index downward
var I: Integer;
begin
for I := Pdf1.ObjectCount - 1 downto 0 do
Pdf1.RemoveObject(I);
end;