Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

При попытке создать объект класса TPrinter я получаю exception

Delphi , ОС и Железо , Принтеры и Печать

При попытке создать объект класса TPrinter я получаю exception

В создании обьекта класса TPrinter с использованием TPrinter.Create нет необходимости, так как обьект класса TPrinter (называемый Printer) автоматически создается при использовании модуля Printers.


uses
  Printers;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Printer.BeginDoc;
  Printer.Canvas.TextOut(100, 100, 
    'Delphi World is the biggest source code collection!');
  Printer.EndDoc;
end;

Here's the translation of the text into Russian:

Проблема здесь в том, что вы пытаетесь использовать объект Printer без объявления его сначала.

В Delphi, когда вы хотите печатать что-то с помощью встроенной функциональности печати, вам нужно объявить объект TPrinter и затем использовать его методы для начала, остановки и управления печатным заданием.

Вот обновленная версия вашего кода, которая должна работать:

uses
  Printers;

procedure TForm1.Button1Click(Sender: TObject);
var
  Printer: TPrinter;
begin
   // Объявляем объект TPrinter
  Printer := TPrinters.Create;

  try
     // Начинаем печатное задание
    Printer.BeginDoc;

     // Печатаем текст
    Printer.Canvas.TextOut(100, 100, 'Delphi World - это крупнейшая коллекция исходного кода!');

     // Завершаем печатное задание
    Printer.EndDoc;
  finally
     // Освобождаем объект printer, когда мы с ним закончили
    Printer.Free;
  end;
end;

В обновленной версии мы объявляем объект TPrinter под именем Printer, а затем используем его методы для начала, остановки и управления печатным заданием. Мы также освобождаем объект Printer в блоке finally, чтобы предотвратить утечки памяти.

Обратите внимание, что вам не нужно вызывать TPrinters.Create, если вы только печатаете из вашей основной формы. Печатающий объект автоматически создается, когда вы входите в диалог печати или кликаете на кнопку "Печать" в панели инструментов. Однако в этом примере мы создаем новое печатное задание программно, поэтому нам нужно объявить и освободить объект Printer вручную.

Надеюсь, это поможет! Пожалуйста, если у вас есть какие-либо дальнейшие вопросы.

Попытка создания объекта класса TPrinter вызывает исключение из-за автоматического создания экземпляра класса TPrinter при использовании модуля Printers.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Принтеры и Печать ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 16:41:52/0.0027220249176025/0