Marks not drawn with GDI+ in TeeChart 2015.15
Posted: Tue Jun 02, 2015 6:13 am
We use TeeChart 2015.15 and Delphi XE8. Marks are not drawn in the following setup, if GDI+ is turned on. If you turn off GDI+ the marks are drawn.
You can reproduce it by putting a TChart (name Chart1), a TTeeGDIPlus (name TeeGDIPlus1) and a TButton (name Button1) on a form, filling the form's OnCreate and and button's OnClick event handler and replacing the implementation by the following code:
Run the program and use the button to turn GDI+ on or off.
You can reproduce it by putting a TChart (name Chart1), a TTeeGDIPlus (name TeeGDIPlus1) and a TButton (name Button1) on a form, filling the form's OnCreate and and button's OnClick event handler and replacing the implementation by the following code:
Code: Select all
implementation
uses
VCLTee.Series,
VCLTee.TeCanvas;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
lxSeries,
lxSumSeries : TBarSeries;
begin
TeeGDIPlus1.TeePanel := Chart1;
Button1.Caption := 'GDI+ on/off';
lxSumSeries := TBarSeries.Create(Self);
lxSumSeries.Marks.Arrow.Visible := True;
lxSumSeries.Marks.Callout.Brush.Color := clBlack;
lxSumSeries.Marks.Callout.Arrow.Visible := True;
lxSumSeries.Marks.Visible := True;
lxSumSeries.ShowInLegend := False;
lxSumSeries.Transparency := 100;
lxSumSeries.Gradient.Direction := gdTopBottom;
lxSumSeries.MultiBar := mbStacked;
lxSumSeries.Shadow.Color := 8487297;
lxSumSeries.XValues.Name := 'X';
lxSumSeries.XValues.Order := loAscending;
lxSumSeries.YValues.Name := 'Kreis';
lxSumSeries.YValues.Order := loNone;
lxSumSeries.BarWidthPercent := 65;
lxSumSeries.AddXY(Date, 1, '1');
lxSeries := TBarSeries.Create(Self);
lxSeries.Marks.Arrow.Visible := True;
lxSeries.Marks.Callout.Brush.Color := clBlack;
lxSeries.Marks.Callout.Arrow.Visible := True;
lxSeries.Marks.Visible := False;
lxSeries.Title := 'Test 1';
lxSeries.Gradient.Direction := gdTopBottom;
lxSeries.MultiBar := mbStacked;
lxSeries.Shadow.Color := 8947848;
lxSeries.Shadow.HorizSize := 0;
lxSeries.BarWidthPercent := 65;
lxSeries.XValues.DateTime := True;
lxSeries.XValues.Name := 'X';
lxSeries.XValues.Order := loAscending;
lxSeries.YValues.Name := 'Y';
lxSeries.YValues.Order := loNone;
lxSeries.Color := clBlue;
lxSeries.AddXY(Date, 40, FormatDateTime('mm/yy', Date));
Chart1.AddSeries(lxSeries);
Chart1.AddSeries(lxSumSeries);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TeeGDIPlus1.Active := not TeeGDIPlus1.Active;
end;