2016-01-26 17 views
0

У меня есть простая диаграмма (TChart) на форме. Я попробовал распечатать эту диаграмму с помощью:После печати TChart я не могу рисовать линии

Chart1.Draw(TPrinterDrawer.Create(Printer), myRect); 

и карта печатается ОК. Но когда я пытаюсь нарисовать линию (ы) после рисования диаграммы, т.е. .:

printer.Canvas.MoveTo(Printer.PageWidth div 6, (Printer.PageHeight *4) div 5); 
printer.Canvas.LineTo(Printer.PageWidth div 2, (Printer.PageHeight *4) div 5); 

Нет линии рисуются (на реальном принтер или растровый холсте) с печатной графики к концу дока.

Когда я выбираю документ Microsoft XPS Document, строки печатаются на странице.
Что мне нужно для решения этой проблемы?

ответ

1

Это ошибка в TAChart, потому что перо находится в режиме pmXor после печати диаграммы. Должен быть установлен в багажнике Lazarus (будет обратно портирован до версии 1.6.2)

+0

Спасибо @ wp_1233996 за ответ. Есть ли способ обойти эту проблему? –

+0

Используйте версию соединительной линии или дождитесь версии 1.6.2. Если вы не хотите использовать магистраль или ждать новой версии, вы также можете редактировать TAChartSources: –

+0

Извините, я слишком рано нажал клавишу возврата ... Это то, что вам нужно изменить: откройте файл TAGraph.pas, он находится в компоненты папки/tachart вашей установки Lazarus. Найдите реализацию метода TChart.Draw (...). Перед «концом»; этой процедуры добавьте следующие две строки: «ADrawer.SetXor (false); ADrawer.PrepareSimplePen (clBlack);» (Я не могу вступить в эту цепочку, но я думаю, вы понимаете, что я имею в виду). Затем перекомпилируйте пакет tachartlazaruspkg.lpk. (Не забудьте сделать резервную копию TAGraph.pas!) –