Начните с основ. У меня есть много руководств, связанных с компонентами, поддерживающими жизненный цикл. Вы учитесь на жизненный цикл, так как ваш вопрос будет https://www.youtube.com/watch?v=e-ews5dRMwI
Я добавил его в общедоступный трекер: # 2059 . Здесь возможно обходное решение:
Chart1.Axes.Bottom.Items.Automatic:=False;
Chart1.Axes.Bottom.Items.Clear;
Chart1.Axes.Bottom.Items.Add(X1, FormatFloat(Chart1.Axes.Bottom.AxisValuesFormat, X1));
Chart1.Axes.Bottom.Items.Add(X2, FormatFloat(Chart1.Axes.Bottom.AxisValuesFormat, X2));
Chart1.Axes.Bottom.SetMinMax(X1-0.5, X2+0.5);
Спасибо Yeray за ваше решение, он работает хорошо.
Как и у меня, и нескольких диаграмм, и нескольких серий на одной диаграмме в моем первоначальном проекте, я закодировал следующую процедуру обхода. Я называю это для всех осей с автоматическим статусом, используемым хотя бы одной серией. Это решает проблему в любом случае.
procedure ChartBug2059_Workaround( AAxis : TChartAxis ;
AAxisMin, AAxisMax : double ) ;
begin
if IsAEqB( AxisMin, AxisMax ) then
begin
AAxis.Automatic:=False;
AAxis.SetMinMax(AxisMin-0.5, AxisMax+0.5);
end
else
AAxis.Automatic:=true;
end;