Marks not working as expected with TChartShapes

TeeChart VCL for Borland/CodeGear/Embarcadero RAD Studio, Delphi and C++ Builder.
Post Reply
Charlie SEI
Posts: 1
Joined: Thu Dec 05, 2019 12:00 am

Marks not working as expected with TChartShapes

Post by Charlie SEI » Tue Jan 14, 2020 7:05 pm


I am making a chart using TChartShapes to create a Marginal Abatement Cost Curves (a series of rectangles showing costs and avoided carbon dioxide for a range of different measures). Its a pretty standard type of chart in my field. TChartShape series seemed like the best way to do this and they generally work very nicely.

However, I would like to label each block using Marks but TeeChart insists on showing two marks for each shape at two corners of each shape. See attached picture.

Can you offer some advice on how to fix this problem? Many thanks in advance.

I'm using Delphi 10.3.3 (32-bit) in Windows 10 using VCL version of TeeChart Pro v2019.27.

Below is code to demonstrate problem:

Code: Select all

procedure TForm19.MACCBtnClick(Sender: TObject);

  Series: TChartShape;

  procedure _AddSer(x0, x1, y0, y1: double; name: string);


    Series := TChartShape.Create(Chart1);
    Series.Style := chasRectangle;
    Series.Title := name;
    Series.x0 := x0;
    Series.x1 := x1;
    Series.y0 := y0;
    Series.y1 := y1;
    Series.Color := clTeeColor; 
    Series.ColorEachPoint := true;
    Series.Pen.Color := clGray;
    Series.Pen.Visible := false;
    Series.Marks.Style :=  smsLabelOrValue; 
    Series.Marks.Visible := true;  //Shows 2 marks per shape

  Chart1.Axes.Left.Minimum := -500;
  Chart1.Axes.Left.Maximum := 500;
  Chart1.Axes.Bottom.Minimum := 0;
  Chart1.Axes.Bottom.Maximum := 100000;
  _AddSer(0, 2000, 0, -400, 'Methane Leaks');
  _AddSer(2001, 5000, 0, -200, 'Forestry');
  _AddSer(5001, 8000, 0, -30, 'Efficient AC');
  _AddSer(8001, 20000, 0, 40, 'Efficient Motors');
  _AddSer(20001, 30000, 0, 50, 'Wind');
  _AddSer(30001, 70000, 0, 350, 'Solar');
  _AddSer(70001, 80000, 0, 370, 'Carnon Capture and Storage');
  _AddSer(80001, 100000, 0, 450, 'Electric Vehicles');
MACC Curve using shape chart.jpg
MACC Curve using shape chart.jpg (63.12 KiB) Viewed 25 times

Post Reply