Форум: "Основная";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
ВнизКак напечатать несколько графиков на одной странице? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c