- •Министерство образования респулики беларусь
- •Оглавление
- •Устройства ввода Краткие теоретические сведения
- •Пример приложения
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •Устройства вывода. Работа с принтером Краткие теоретические сведения
- •Компонент tPrintDialog
- •Пример программы
- •Процедура печати текста из Memo
- •Процедура печати картинки из Image
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •Работа с накопителями Рекомендации по выполнению работы
- •Пример программы
- •Обработчик нажатия кнопки
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •Работа с параллельным портом Основные теоретические сведения
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •Список использованных источников
Пример программы
Ниже приведен вид формы и текст модуля приложения, выводящего на печать содержимое поля Memo и картинку.
Форма приложения представлена на рисунке 2.
Рисунок 2 — Вид формы приложения
Текст модуля приложения:
unit PrintDemo_;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, StdCtrls, Printers;
type
TfrmPrintDemo = class(TForm)
btnPrintMemo: TButton;
Memo: TMemo;
Image: TImage;
btnPrintImage: TButton;
PrintDialog: TPrintDialog;
procedure btnPrintMemoClick(Sender: TObject);
procedure btnPrintImageClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmPrintDemo: TfrmPrintDemo;
implementation
{$R *.dfm}
Процедура печати текста из Memo
procedure TfrmPrintDemo.btnPrintMemoClick(Sender: TObject);
var i:integer;
Prn:TextFile;
begin
//Если запущен диалог печати и не было отмены
if PrintDialog.Execute then begin
//Задание количества копий
Printer.Copies:=PrintDialog.Copies;
//Задание параметров шрифта
Printer.Canvas.Font.Name:='Times New Roman';
Printer.Canvas.Font.Size:=14;
//Связывание текстового файла с принтером по умолчанию
AssignPrn(Prn);
try
//Открытие файла для записи
Rewrite(Prn);
try
//Вывод строк из поля Memo
for i := 0 to Memo.Lines.Count — 1 do
writeln(Prn, Memo.Lines[i]);
finally
//Закрытие принтера
CloseFile(Prn);
end;
except
//Сообщение при ошибке
on EInOutError do
MessageDlg('Ошибка печати текста.', mtError, [mbOk], 0);
end;
end;
end;
Процедура печати картинки из Image
procedure TfrmPrintDemo.btnPrintImageClick(Sender: TObject);
var ScaleX, ScaleY: Integer;
RR: TRect;
begin
if PrintDialog.Execute then
try
with Printer do begin
Copies:=PrintDialog.Copies;
BeginDoc; //Начало печати
try
//Вычисление масштабирующих множителей
ScaleX := GetDeviceCaps(Handle, logPixelsX) div PixelsPerInch;
ScaleY := GetDeviceCaps(Handle, logPixelsY) div PixelsPerInch;
//Выделение области для печати
RR := Rect(0, 0, Image.picture.Width * scaleX, Image.Picture.Height * ScaleY);
//Печать области (вывод на канву принтера)
Canvas.StretchDraw(RR, Image.Picture.Graphic);
finally
EndDoc; //Конец печати
end;
end;
except
//Сообщение при ошибке
on EInOutError do
MessageDlg('Ошибка печати', mtError, [mbOk], 0);
end;
end;
end.
Задания для самостоятельного выполнения
Выполните индивидуальное задание из таблицы 3 в соответствии со своим вариантом.
Таблица 3 – Варианты индивидуальных заданий
Вариант |
Задание |
|
Разработать приложение для вывода содержимого компонента класса TMemo на печать с использованием функции канвы принтера TextOut. |
|
Разработать приложение для вывода строк, содержащихся в компоненте класса TListBox на печать с использованием функции канвы принтера TextOut. |
|
Разработать приложение для печати графика функции, построенного на компоненте класса TImage на печать. |
|
Разработать приложение для вывода содержимого компонента класса TStringGrid на печать в виде таблицы с использованием вывода на принтер, как в текстовый файл. |
|
Разработать приложение для вывода содержимого компонента класса TMemo на печать с использованием вывода на принтер, как в текстовый файл. Приложение должно иметь возможность настройки шрифта выводимого текста. |
|
Разработать приложение для вывода строк, содержащихся в компоненте класса TListBox на печать с использованием вывода на принтер, как в текстовый файл. Приложение должно иметь возможность настройки шрифта выводимого текста. |
|
Разработать приложение для вывода содержимого компонента класса TStringGrid на печать в виде таблицы с использованием функции канвы принтера TextOut. |
|
Разработать приложение для печати изображения, нарисованного на компоненте класса TPaintBox на печать. |
|
Разработать приложение для вывода содержимого компонента класса TRichEdit на печать с использованием вывода на принтер, как в текстовый файл. Приложение должно иметь возможность настройки шрифта выводимого текста. |
|
Разработать приложение для вывода содержимого компонента класса TListView на печать с использованием функции канвы принтера TextOut. |
|
Разработать приложение для вывода содержимого компонента класса TRichEdit на печать с использованием функции канвы принтера TextOut. |
|
Разработать приложение для вывода содержимого компонента класса TValurListEditor на печать с использованием функции канвы принтера TextOut. |