Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.29;
Скачать: CL | DM;

Вниз

Как напечатать несколько графиков на одной странице?   Найти похожие ветки 

 
morev_s_a   (2004-02-17 18:19) [0]

Как с помощью TeeChartPro (или без помощи) напечатать несколько графиков на одной странице? В справке написано только как добавлять графики в компонент предварительного просмотра, а как печатать не написано.

Если печатать так:

Printer->BeginDoc();

for ( int i = 0 ; i < TeePreviewPanel1->Panels->Count ;i++ )
{
TeePreviewPanel1->Panels->Items[i]->PrintPartialCanvas
( Printer->Canvas , Rect( ....) );
}
Printer->EndDoc();

то печатается только первый график, а остальные нет.

Проверено, что TeePreviewPanel1->Panels->Count возврвщает правельное количество графиков (т.е. не 1 ).

Помогите кто чем может.


 
Семен Сорокин ©   (2004-02-17 18:29) [1]

Печатай на канву принтера


 
Семен Сорокин ©   (2004-02-17 18:37) [2]

кусок из рабочего проекта, FPrintAllCharts - массив из 5 TChart"ов.
Screen.Cursor := crHourGlass;
_bmp := TBitmap.Create;
_bmp1 := TBitmap.Create;
with Printer do begin
BeginDoc;
try
_bmp.Width := pnlChartsNoScroll.Width;
_bmp.Height := pnlChartsNoScroll.Height+20;
_str := "Борт " + IntToStr(FAllSeries.FData.FlightData.Bort) + " Рейс " + IntToStr(FAllSeries.FData.FlightData.Reis) +
" Дата " + FormatDateTime("dd.mm.yy hh:nn", FAllSeries.FData.FlightData.TimeBegin);
_bmp.Canvas.Font.Name := "Tahoma";
_bmp.Canvas.Font.Size := 10;
_bmp.Canvas.Font.Color:= clBlue;
_bmp.Canvas.Font.Style:= [fsBold];
_rect := Rect(0, 0, pnlChartsNoScroll.Width, _bmp.Canvas.TextHeight("W") + 3);
DrawText(_bmp.Canvas.Handle, PChar(_str), Length(_str), _rect, DT_NOPREFIX or DT_WORDBREAK or DT_CENTER or DT_VCENTER);
_topb := _bmp.Canvas.TextHeight("W") + 3;
_l := PageWidth div 20;
_t := PageHeight div 20;
_koef := (PageHeight-_t*2)/(pnlChartsNoScroll.Height+20);
_rect := Rect(_l, _t, PageWidth-_l*2, _t + Canvas.TextHeight("W") + 3);
Canvas.Font.Name := "Tahoma";
Canvas.Font.Size := 10;
Canvas.Font.Color:= clBlue;
Canvas.Font.Style:= [fsBold];
DrawText(Canvas.Handle, PChar(_str), Length(_str), _rect, DT_NOPREFIX or DT_WORDBREAK or DT_CENTER or DT_VCENTER);
_top := _t + Canvas.TextHeight("W") + 10;
for _i := 1 to 5 do
if FPrintAllCharts[_i].Visible and (FPrintAllCharts[_i].SeriesCount > 0) then begin
try
FPrintAllCharts[_i].Color := clWhite;
FPrintAllCharts[_i].BackColor := clWhite;
_bmp1.Width := FPrintAllCharts[_i].Width;
_bmp1.Height := FPrintAllCharts[_i].Height;
FPrintAllCharts[_i].PaintTo(_bmp1.Canvas, 0, 0);
StretchBlt(Canvas.Handle, _l, _top, PageWidth-_l{*2}, Round(_koef*FPrintAllCharts[_i].ChartHeight),
_bmp1.Canvas.Handle, 0, 0, _bmp1.Width, _bmp1.Height, SRCCOPY);
_top := _top + Round(_koef*FPrintAllCharts[_i].Height) + 10;
_rect := _bmp1.Canvas.ClipRect;
_rect.Bottom := _rect.Bottom + _topb;
_rect.Top := _rect.Top + _topb;
_bmp.Canvas.CopyRect(_rect, _bmp1.Canvas, _bmp1.Canvas.ClipRect);
_topb := _topb + _bmp1.Canvas.ClipRect.Bottom - _bmp1.Canvas.ClipRect.Top + 3
finally
FPrintAllCharts[_i].Color := clBtnFace;
FPrintAllCharts[_i].BackColor := iif(tbInvertBackground.Tag=0, clWhite, clBlack)
end
end;
_bmp.SaveToFile(GlobalSettings.OutDocDir + "\Параметры и сигналы.bmp");
finally
EndDoc;
_bmp.Free;
_bmp1.Free;
Screen.Cursor := crDefault
end



Страницы: 1 вся ветка

Текущий архив: 2004.02.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
7-94213
Oleg1
2003-12-10 08:15
2004.02.29
Как блокировать мыш и клавиатуру


3-93815
Пубертанец
2004-02-02 16:14
2004.02.29
Ошибка при написании триггеров - deadlock


7-94217
Анонимщик
2003-12-01 13:31
2004.02.29
Ком-порт, CTS, 12 вольт


1-94011
Kreon
2004-02-16 20:39
2004.02.29
Отображение русских шрифтов


1-93929
Max
2004-02-15 11:11
2004.02.29
Преобразование времени из Windows в Unix