![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Печать на принтер через канву [D6, Win2k]
Seb_Kost © (2003-04-08 14:54:00)У меня есть график, созданный компонентой DBChart.
Данные в этот график поступают по мере сбора данных с приборов,
после или до занесения данных в таблицу мне необходимо их распечатать на принтере, заправленного рулонной бумаге.
Вот такая маленькая проблема.
raiv (2003-04-09 09:42:00) [1]1. Зачем тебе копировать канву?
procedure TMainForm.FilePrint(Sender: TObject);
var
OldOrientation:TPrinterOrientation;
tmpH,TmpW, tmpWMargin, tmpHMargin: Longint;
begin
if PrintDialog.Execute then
Screen.Cursor:=crHourGlass;
OldOrientation:=Printer.Orientation;
Printer.Orientation:=poLandscape;
try
Printer.BeginDoc;
try
DBChart1.PrintResolution:=0;
//Расчет горизонтальных полей
tmpW:=Printer.PageWidth;
tmpWMargin:=Round(5.0*tmpW/100.0); //<--5% поле
tmpW:=tmpW-2*tmpWMargin; //левое и правое поля
tmpW:=tmpW div 2; // слева и справа высота
//Расчет вертикальных полей
tmpH:=Printer.PageHeight;
tmpHMargin:=Round(5.0*tmpH/100.0); //<--5% поле
tmpH:=tmpH-2*tmpHMargin; //верхнее и нижнее поле
//tmpH:=tmpH div 2;
DBChart1.PrintPartial(Rect(0,352,tmpWMargin+2*tmpW,tmpHMargin+tmpH));
Printer.EndDoc;
except
on Exception do
Begin
Printer.Abort;
Printer.EndDoc;
Raise;
end; //begin
end; //except
finally
Printer.Orientation:=OldOrientation;
Screen.Cursor:=crDefault;
end; //finally
end; //procedure
2. Вариан: используй ChartPreview(form1,Chart) и все!
Seb_Kost (2003-04-09 07:36:00) [2]А как скопировать в канву часть графика. И какая функция посылает на печать, и какой параметр отвечает за "перемотку листа"?
Севостьянов Игорь (2003-04-08 15:42:00) [3]А в чем собственно проблема ? (class TPrinter ?)