Вопросы и Ответы
12. Как одной процедурой осуществить вывод и в окно и на принтер?
Для этого необходимо учитывать размер используемого контекста отображения и конечно же, сам контекст в который производится вывод. Вот параметры которые необходимы процедуре для вывода:
Вывод | Контекст |
Ширина |
Высота |
в окно |
Printers.Canvas |
ClientWidth | ClientHeight |
на принтер |
Canvas |
PageWidth | PageHeight |
............
{вывод
рисунка в контекст Cv} k := W DIV 40; {вычисление коэффициента - от ширины
листа} Font.Name
:= 'Times New Roman Cyr'; END;
END; ............ {вывод
информации в окно} Draw(Canvas,
ClientWidth, ClientHeight); end; ............ {вывод
информации на принтер} WITH
Printer DO BEGIN BeginDoc;
END;
end; ............ Для работы с принтером не
забудте добавить модуль Printers в строку Uses....
PROCEDURE TForm1.Draw(Cv: TCanvas; W, H : Integer);
VAR k: Integer;
BEGIN
WITH Cv DO BEGIN {рисование
в предоставленном контексте}
Font.Size := k*6;
Font.Color := clOlive;
TextOut(k*10, k*6, 'Delphi');
Font.Size := k*4;
Font.Color := clBlue;
TextOut(k*11, k*15, 'для всех');
Pen.Color := clRed;
Pen.Width := k div 2;
MoveTo(k*15, k*22);
LineTo(k*34, k*21);
procedure TForm1.FormPaint(Sender: TObject);
begin
procedure TForm1.mPrintClick(Sender: TObject);
begin
Draw(Printer.Canvas, PageWidth, PageHeight);
EndDoc;
...предыдущая страница следующая...
оглавление