如何避免在Delphi10中使用TeeChart Pro 2017更改图表的背景颜色?

时间:2018-06-08 09:19:50

标签: delphi teechart

我正在使用此代码根据我的鼠标位置在我的图表上绘制一个十字架

//Setup color 
Canvas.Pen.Style := psSolid;
Canvas.Pen.Width := 1;
CrossSize := 30;
Canvas.Pen.Mode := pmNotXor;
Canvas.Pen.Color := clGray;
//Draw the cross
Canvas.MoveTo(X - CrossSize, Y);
Canvas.LineTo(X + CrossSize, Y);
Canvas.MoveTo(X, Y - CrossSize);
Canvas.LineTo(X, Y + CrossSize);

如果Pen.Mode是pmNotXor,当我的鼠标移出图表时,我的图表背景颜色会变为浅灰色。 如果Pen.Mode是pmXor,则背景颜色变为黑色。

此代码与旧版本的TChart和Delphi XE4完美配合。将软件升级到Delphi10和TeeChart Pro 2017时,我才遇到这个问题。

以下是此问题的屏幕截图。 White background vs移动光标后(触发绘制十字功能)Gray background

有没有人知道我在这里使用了什么错误,还是与Delphi 10相关的错误?

此致 VU

1 个答案:

答案 0 :(得分:1)

这与维多利亚的答案类似,但我就是这样做的。

var
  SavePen: TPen;
begin
  SavePen := TPen.Create;
  try
    SavePen.Assign( Canvas.Pen );
      // modify the pen
    Canvas.Pen.Assign( SavePen );      
  finally
    SavePen.Free;
  end;
end;

回到画布Pen的赋值是否应该在finally子句中是有争议的。你的选择,真的。