Как избежать изменения цвета фона диаграммы с TeeChart Pro 2017 в Delphi10? - PullRequest
0 голосов
/ 08 июня 2018

Я использую этот код, чтобы нарисовать крест на моей диаграмме на основе положения моей мыши

//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.

Ниже приведен снимок экрана этой проблемы. Белый фон против перемещения курсора (который вызывает функцию рисования креста) Серый фон .

Кто-нибудь знает, что я здесь неправильно использую илиэто ошибка, связанная с Delphi 10?

С уважением, Vu

1 Ответ

0 голосов
/ 08 июня 2018

Это похоже на ответ Виктории, но я так и делаю.

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.Твой выбор, правда.

...