2016-01-26 23 views
0

我有一個窗體上的簡單圖表(TChart)。我試圖打印此圖表:打印TChart後,我不能畫線

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

和圖表打印確定。但是,當我嘗試繪製圖表後畫線(S),即:

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 Writer時,行會打印在頁面上。
我需要做些什麼來解決這個問題?

回答

1

這是TAChart中的一個錯誤,因爲打印圖表後筆處於pmXor模式。應該修復在Lazarus主幹(將被移植到版本1.6.2)

+0

謝謝@ wp_1233996的回答。有什麼辦法可以解決這個問題嗎? –

+0

使用中繼版本,或等待版本1.6.2。如果不想使用中繼或等待新版本,您還可以編輯TAChartSources: –

+0

對不起,我太早地點擊返回鍵...這是你必須改變:打開文件TAGraph.pas,它在Lazarus安裝的文件夾組件/ tachart。查找方法TChart.Draw(...)的實現。在「結束」之前這個過程添加這兩行:「ADrawer.SetXor(false); ADrawer.PrepareSimplePen(clBlack);」 (我不能在這裏輸入換行符,但我想你明白我的意思)。然後重新編譯包tachartlazaruspkg.lpk。 (不要忘記製作TAGraph.pas的備份副本!) –