TAChart: Optimzed extent calculation when chart source is sorted. Issue #35389, patch by Marcin Wiazowski.

git-svn-id: trunk@60991 -
This commit is contained in:
wp 2019-04-16 07:36:48 +00:00
parent fbef644b79
commit d9bccc11be

View File

@ -809,8 +809,10 @@ var
begin
if FBasicExtentIsValid then
exit(FBasicExtent);
FBasicExtent := EmptyExtent;
if Count > 0 then begin
if XCount > 0 then begin
if HasXErrorBars then
for i := 0 to Count - 1 do begin
@ -819,6 +821,10 @@ begin
UpdateMinMax(vlo, FBasicExtent.a.X, FBasicExtent.b.X);
end
else
if (FSortBy = sbX) and (FSortIndex = 0) then begin
UpdateMinMax(Item[0]^.X, FBasicExtent.a.X, FBasicExtent.b.X);
UpdateMinMax(Item[Count-1]^.X, FBasicExtent.a.X, FBasicExtent.b.X);
end else
for i:=0 to Count - 1 do
UpdateMinMax(Item[i]^.X, FBasicExtent.a.X, FBasicExtent.b.X);
end;
@ -831,9 +837,14 @@ begin
UpdateMinMax(vlo, FBasicExtent.a.Y, FBasicExtent.b.Y);
end
else
if (FSortBy = sbY) and (FSortIndex = 0) then begin
UpdateMinMax(Item[0]^.Y, FBasicExtent.a.Y, FBasicExtent.b.Y);
UpdateMinMax(Item[Count-1]^.Y, FBasicExtent.a.Y, FBasicExtent.b.Y);
end else
for i:=0 to Count - 1 do
UpdateMinMax(Item[i]^.Y, FBasicExtent.a.Y, FBasicExtent.b.Y);
end;
end;
FBasicExtentIsValid := true;
Result := FBasicExtent;