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 – Варианты индивидуальных заданий
Вариант
| Задание
|
1.
| Разработать приложение для вывода содержимого компонента класса TMemo на печать с использованием функции канвы принтера TextOut.
|
2.
| Разработать приложение для вывода строк, содержащихся в компоненте класса TListBox на печать с использованием функции канвы принтера TextOut.
|
3.
| Разработать приложение для печати графика функции, построенного на компоненте класса TImage на печать.
|
4.
| Разработать приложение для вывода содержимого компонента класса TStringGrid на печать в виде таблицы с использованием вывода на принтер, как в текстовый файл.
|
5.
| Разработать приложение для вывода содержимого компонента класса TMemo на печать с использованием вывода на принтер, как в текстовый файл. Приложение должно иметь возможность настройки шрифта выводимого текста.
|
6.
| Разработать приложение для вывода строк, содержащихся в компоненте класса TListBox на печать с использованием вывода на принтер, как в текстовый файл. Приложение должно иметь возможность настройки шрифта выводимого текста.
|
7.
| Разработать приложение для вывода содержимого компонента класса TStringGrid на печать в виде таблицы с использованием функции канвы принтера TextOut.
|
8.
| Разработать приложение для печати изображения, нарисованного на компоненте класса TPaintBox на печать.
|
9.
| Разработать приложение для вывода содержимого компонента класса TRichEdit на печать с использованием вывода на принтер, как в текстовый файл. Приложение должно иметь возможность настройки шрифта выводимого текста.
|
10.
| Разработать приложение для вывода содержимого компонента класса TListView на печать с использованием функции канвы принтера TextOut.
|
11.
| Разработать приложение для вывода содержимого компонента класса TRichEdit на печать с использованием функции канвы принтера TextOut.
|
12.
| Разработать приложение для вывода содержимого компонента класса TValurListEditor на печать с использованием функции канвы принтера TextOut.
|
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Какие компоненты используются в Delphi для вывода информации на печать?
2. Какими способами можно печатать текст?
3. Опишите основные свойства объекта Printer?
4. Опишите основные свойства стандартных диалогов печати и настройки принтера?
5. Каким образом можно осуществлять масштабирование графических изображений при печати?