TAChart: Correct vertical position of stacked bar series centered labels if ZeroLevel is not used.

git-svn-id: trunk@60087 -
This commit is contained in:
wp 2019-01-15 09:12:06 +00:00
parent ca3d4a29d7
commit 12f19c342d
2 changed files with 11 additions and 1 deletions

View File

@ -278,6 +278,7 @@ type
FUpBound: Integer;
FUseReticule: Boolean;
FOptimizeX: Boolean;
FSupportsZeroLevel: Boolean;
procedure AfterDrawPointer(
ADrawer: IChartDrawer; AIndex: Integer; const APos: TPoint); virtual;
@ -1121,6 +1122,7 @@ begin
Self.FPointer.Assign(Pointer);
Self.Stacked := Stacked;
Self.FUseReticule := UseReticule;
Self.FSupportsZeroLevel := FSupportsZeroLevel;
end;
inherited Assign(ASource);
end;
@ -1249,6 +1251,7 @@ var
style: TChartStyle;
lfont: TFont;
curr, prev: Double;
ext: TDoubleRect;
begin
if not Marks.IsMarkLabelsVisible then exit;
@ -1256,13 +1259,17 @@ begin
try
lfont.Assign(Marks.LabelFont);
ParentChart.DisableRedrawing;
ext := Extent;
for i := FLoBound to FUpBound do begin
if IsNan(Source[i]^.Point) then
continue;
y := Source[i]^.Y;
ysum := y;
prev := GetZeroLevel;
if FSupportsZeroLevel then
prev := GetZeroLevel
else
prev := TDoublePointBoolArr(ext.a)[not IsRotated];
ld := GetLabelDirection(i);
for si := 0 to Source.YCount - 1 do begin
if Styles <> nil then begin

View File

@ -1072,6 +1072,7 @@ begin
FStacked := true;
FOptimizeX := false;
FSupportsZeroLevel := true;
end;
destructor TBarSeries.Destroy;
@ -1469,6 +1470,7 @@ begin
FAreaLinesPen := TPen.Create;
FAreaLinesPen.OnChange := @StyleChanged;
FStacked := true;
FSupportsZeroLevel := FUseZeroLevel;
end;
destructor TAreaSeries.Destroy;
@ -1757,6 +1759,7 @@ procedure TAreaSeries.SetUseZeroLevel(AValue: Boolean);
begin
if FUseZeroLevel = AValue then exit;
FUseZeroLevel := AValue;
FSupportsZeroLevel := FUseZeroLevel;
UpdateParentChart;
end;