Frequently Asked Component Specific Questions
Options | 
		
| 		
			
				 Display all FAQ items  | 
		
		
Displaying items 1 to 1 of 1, page 1 of 1
<< previous next >>

TMS VCL ChartCustom X-Axis drawing
procedure TForm1.FormCreate(Sender: TObject);
var
  I: Integer;
begin
  AdvChartView1.BeginUpdate;
  AdvChartView1.Panes[0].Series[2].Free;
  AdvChartView1.Panes[0].Series[1].Free;
  AdvChartView1.Panes[0].Series[0].OnXAxisDrawValue := XAxisDrawVal; 
  AdvChartView1.Panes[0].Series[0].ChartType := ctBar; 
  AdvChartView1.Panes[0].Series[0].XAxis.AutoUnits := False;
  AdvChartView1.Panes[0].XAxis.AutoSize := False;
  AdvChartView1.Panes[0].Series[0].AutoRange := arEnabledZeroBased;
  AdvChartView1.Panes[0].XAxis.Size := 50;
  for I := 0 to 9 do
    AdvChartView1.Panes[0].Series[0].AddSinglePoint(Random(100), ''Item '' + inttostr(I));
  AdvChartView1.EndUpdate;
end;
procedure TForm1.XAxisDrawVal(Sender: TObject; Serie: TChartSerie;
  Canvas: TCanvas; ARect: TRect; ValueIndex, XMarker: integer; Top: Boolean;
  var defaultdraw: Boolean);
var
  bw, tw: Integer;
  s: string;
begin
  defaultdraw := False;
  bw := Serie.GetBarWidth(1) div 2;
  Canvas.Pen.Color := clBlack;
  Canvas.Pen.Width := 2;
  Canvas.MoveTo(XMarker - bw + 1 , ARect.Top);
  Canvas.LineTo(XMarker - bw + 1, ARect.Top + 10);
  Canvas.MoveTo(XMarker + bw + 1, ARect.Top);
  Canvas.LineTo(XMarker + bw + 1, ARect.Top + 10);
  s := Serie.Points[ValueIndex].LegendValue;
  tw := Canvas.TextWidth(s);
  Canvas.TextOut(XMarker - tw div 2, ARect.Top + 12, s);
end;