procedure RemoveObject(Index: Integer; DestroyObject: Boolean = True);
| Index | Integer. Индекс page object, который нужно удалить, с нумерацией с нуля (от 0 до ObjectCount - 1) |
| DestroyObject | Boolean. Когда True (по умолчанию), underlying PDFium object освобождается после удаления. Передайте False, чтобы detach объект от страницы без освобождения его памяти, например при переносе его на другую страницу |
RemoveObject удаляет page object с текущей страницы по его индексу с нумерацией с нуля. Допустимые значения индекса лежат в диапазоне от 0 до ObjectCount - 1. После вызова поток содержимого страницы автоматически пересоздаётся, так что изменение видно сразу
Когда DestroyObject равно True (по умолчанию), underlying PDFium object handle освобождается и его память очищается. Когда False, object лишь detach от страницы без уничтожения — это полезно при переносе object с одной страницы на другую, где вызывающий код принимает владение handle
Поскольку удаление object сдвигает индексы всех последующих object, будьте осторожны при удалении нескольких object в цикле: итерируйтесь от наибольшего индекса вниз или соберите индексы для удаления перед началом цикла
// 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;