fpspreadsheet: Fix scatter series after r9053

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9055 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2023-11-28 23:55:25 +00:00
parent 22e45acc19
commit 29ec3f9436

View File

@ -141,6 +141,8 @@ uses
type type
TAxisKind = 3..6; TAxisKind = 3..6;
TsCustomLineSeriesOpener = class(TsCustomLineSeries);
const const
OPENDOC_PATH_METAINF_MANIFEST = 'META-INF/manifest.xml'; OPENDOC_PATH_METAINF_MANIFEST = 'META-INF/manifest.xml';
OPENDOC_PATH_CHART_CONTENT = 'Object %d/content.xml'; OPENDOC_PATH_CHART_CONTENT = 'Object %d/content.xml';
@ -1013,6 +1015,7 @@ begin
for lp in TsChartLegendPosition do for lp in TsChartLegendPosition do
if s = LEGEND_POSITION[lp] then if s = LEGEND_POSITION[lp] then
begin begin
AChart.Legend.Visible := true;
AChart.Legend.Position := lp; AChart.Legend.Position := lp;
break; break;
end; end;
@ -1056,14 +1059,14 @@ end;
procedure TsSpreadOpenDocChartReader.ReadChartRegressionEquationStyle(AStyleNode: TDOMNode; procedure TsSpreadOpenDocChartReader.ReadChartRegressionEquationStyle(AStyleNode: TDOMNode;
AChart: TsChart; ASeries: TsChartSeries); AChart: TsChart; ASeries: TsChartSeries);
var var
series: TsScatterSeries; series: TsCustomScatterSeries;
odsReader: TsSpreadOpenDocReader; odsReader: TsSpreadOpenDocReader;
s, nodeName: String; s, nodeName: String;
begin begin
if not (ASeries is TsScatterSeries) then if not (ASeries is TsScatterSeries) then
exit; exit;
series := TsScatterSeries(ASeries); series := TsCustomScatterSeries(ASeries);
odsReader := TsSpreadOpenDocReader(Reader); odsReader := TsSpreadOpenDocReader(Reader);
nodeName := AStyleNode.NodeName; nodeName := AStyleNode.NodeName;
@ -1102,15 +1105,15 @@ end;
procedure TsSpreadOpenDocChartReader.ReadChartRegressionProps(ANode, AStyleNode: TDOMNode; procedure TsSpreadOpenDocChartReader.ReadChartRegressionProps(ANode, AStyleNode: TDOMNode;
AChart: TsChart; ASeries: TsChartSeries); AChart: TsChart; ASeries: TsChartSeries);
var var
series: TsScatterSeries; series: TsCustomScatterSeries;
s, nodeName: String; s, nodeName: String;
styleNode: TDOMNode; styleNode: TDOMNode;
subNode: TDOMNode; subNode: TDOMNode;
begin begin
if not (ASeries is TsScatterSeries) then if not (ASeries is TsCustomScatterSeries) then
exit; exit;
series := TsScatterSeries(ASeries); series := TsCustomScatterSeries(ASeries);
s := GetAttrValue(ANode, 'chart:style-name'); s := GetAttrValue(ANode, 'chart:style-name');
styleNode := FindStyleNode(AStyleNode, s); styleNode := FindStyleNode(AStyleNode, s);
@ -1370,26 +1373,26 @@ begin
childNode1 := childNode1.NextSibling; childNode1 := childNode1.NextSibling;
end; end;
if (ASeries is TsLineSeries) then if (ASeries is TsCustomLineSeries) then
begin begin
s := GetAttrValue(AStyleNode, 'chart:symbol-name'); s := GetAttrValue(AStyleNode, 'chart:symbol-name');
if s <> '' then if s <> '' then
begin begin
TsLineSeries(ASeries).ShowSymbols := true; TsCustomLineSeriesOpener(ASeries).ShowSymbols := true;
for css in TsChartSeriesSymbol do for css in TsChartSeriesSymbol do
if SYMBOL_NAMES[css] = s then if SYMBOL_NAMES[css] = s then
begin begin
TsLineSeries(ASeries).Symbol := css; TsCustomLineSeriesOpener(ASeries).Symbol := css;
break; break;
end; end;
s := GetAttrValue(AStyleNode, 'symbol-width'); s := GetAttrValue(AStyleNode, 'symbol-width');
if (s <> '') and EvalLengthStr(s, value, rel) then if (s <> '') and EvalLengthStr(s, value, rel) then
TsLineSeries(ASeries).SymbolWidth := value; TsCustomLineSeriesOpener(ASeries).SymbolWidth := value;
s := GetAttrValue(AStyleNode, 'symbol-height'); s := GetAttrValue(AStyleNode, 'symbol-height');
if (s <> '') and EvalLengthStr(s, value, rel) then if (s <> '') and EvalLengthStr(s, value, rel) then
TsLineSeries(ASeries).SymbolHeight := value; TsCustomLineSeriesOpener(ASeries).SymbolHeight := value;
end else end else
TsLineSeries(ASeries).ShowSymbols := false; TsCustomLineSeriesOpener(ASeries).ShowSymbols := false;
end; end;
end; end;