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

如何避免在Delphi10中使用TeeChart Pro 2017更改图表的背景色?,delphi,teechart,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); Ca

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

//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,则当鼠标移出图表时,我的图表背景颜色将更改为浅灰色。 如果笔模式为pmXor,则背景色变为黑色

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

以下是本期的屏幕截图。 移动光标后的vs(触发绘制交叉函数)

有没有人知道我在这里使用的错误是什么,或者它是与Delphi10相关的错误

问候,,
Vu

这与维多利亚的答案相似,但这是我的做法

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

返回画布画笔的赋值是否应在finally子句中仍有争议。你的选择,真的

Dsm,谢谢你的回答。我试过你的建议,但没用。似乎Pen.Mode pmNotXor与我的TChart pro和Delphi 10版本不兼容。您使用的是什么版本的Delphi?您好,Dusty,请您告诉Yeray,这是一个简单的示例,我们可以在这里重现问题并尝试为您找到解决方案?提前谢谢你能帮我安排一下吗?