Когда вы запускаете этот код:
Printer
Printer
удаляется при выходе функции. Поэтому, когда аппликация завершается, она пытается удалить ее снова, и вы получите сообщение об ошибке. Более того, если вы попытаетесь запустить этот код во второй раз, он также повысится. Printer
это просто указатель на глобальный TPrinter
объект, возвращаемый Printer
функцией. Вы не должны удалять вещи, которые вы еще не создали.
Документация Printer
функции:
Возвращает глобальный экземпляр TPrinter для управления взаимодействием с принтером.
Принтер создает экземпляр глобального объекта TPrinter при первом вызове. Используйте функцию «Принтер» для печати с использованием объекта TPrinter.
Примечание. Глобальный объект TPrinter автоматически освобождается при отключении приложения. После вызова SetPrinter возвращенный принтер не будет автоматически освобожден. Ответственность вызывающего абонента либо освобождает возвращаемое значение, либо заменяет его другим вызовом SetPrinter и освобождает заменяющий принтер, который возвращает второй вызов SetPrinter.