I temporary fixed this for the configuration I use, by changing TCustomErrorSeries.Clicked(x, y: Integer) in ErrorBar.pas near line 666:
Code: Select all
..
else
if FErrorWidthUnits=ewuPercent then
begin
tmpWidth:=Round(1.0*FErrorWidth*tmpBarWidth*0.01);
tmpXOffs:=Round(1.0*(100.0-FErrorWidth)*tmpBarWidth*0.01) Div 2; //<------ Calc half of with at 100%
end
else
tmpWidth:=FErrorWidth;
if checkTop then
begin
if ClickedHorizontal(P, CalcXPos(t)+tmpXOffs, CalcXPos(t) + tmpWidth + tmpXOffs, //<---- adjust x position using tmpXOffs
CalcYPosValue(YValues[t] + tmpError))
or
ClickedVertical(P, CalcXPos(t) + tmpXOffs + tmpWidth div 2, CalcYPos(t), //<---- adjust x position using tmpXOffs
CalcYPosValue(YValues[t] + tmpError)) then
begin
result:=t;
exit;
end;
end;
if checkBottom then
begin
if ClickedHorizontal(P, CalcXPos(t)+tmpXOffs, CalcXPos(t) + tmpWidth + tmpXOffs, //<---- adjust x position using tmpXOffs
CalcYPosValue(YValues[t] - tmpError))
or
ClickedVertical(P, CalcXPos(t) + tmpXOffs + tmpWidth div 2, CalcYPos(t), //<---- adjust x position using tmpXOffs
CalcYPosValue(YValues[t] - tmpError)) then
begin
result:=t;
exit;
end;
end;
...