diff --git a/components/fpspreadsheet/docs/README.txt b/components/fpspreadsheet/docs/README.txt index 2b74b1e85..c231dfe9d 100644 --- a/components/fpspreadsheet/docs/README.txt +++ b/components/fpspreadsheet/docs/README.txt @@ -22,6 +22,9 @@ - Add them to the system's search path (or copy the two executables to the folder docs/wiki of the fpspreadsheet installation. +- You also have to copy the OpenSSL DLLs libeay32.dll and ssleay32.dll of the + correct bitness to the folder docs/wiki of the fpspreadsheed installation. + - Run the script "make_docs.bat" (no Linux script at the moment) - This script downloads the current fpspreadsheet wiki articles and creates diff --git a/components/fpspreadsheet/docs/api/fpspreadsheet.dox-express b/components/fpspreadsheet/docs/api/fpspreadsheet.dox-express index 5d6f3313d..5ec6b2e79 100644 --- a/components/fpspreadsheet/docs/api/fpspreadsheet.dox-express +++ b/components/fpspreadsheet/docs/api/fpspreadsheet.dox-express @@ -234,12 +234,12 @@ ID={D3A588E0-9472-11D3-BDD1-0080C8BA053D} [General] Author=Felipe Monteiro de Carvalho and Werner Pamler AuthorEmail= -Copyright=Copyright (c) 2008-2015 +Copyright=Copyright (c) 2008-2020 Summary=Free Pascal Spreadsheet Library Title=FPSpreadsheet VersionBuild=0 VersionMajor=1 -VersionMinor=7 +VersionMinor=12 VersionRelease=0 [Macro Header Files] @@ -881,13 +881,14 @@ ID9=9 SavedValues=1 [Source Files] -Count=6 +Count=7 File0=..\..\source\common\fpsimages.pas File1=..\..\source\common\fpsnumformat.pas File2=..\..\source\common\fpspreadsheet.pas -File3=..\..\source\common\fpsutils.pas -File4=..\..\source\visual\fpspreadsheetctrls.pas -File5=..\..\source\visual\fpspreadsheetgrid.pas +File3=..\..\source\common\fpstypes.pas +File4=..\..\source\common\fpsutils.pas +File5=..\..\source\visual\fpspreadsheetctrls.pas +File6=..\..\source\visual\fpspreadsheetgrid.pas [Source Include Directories] Count=0 diff --git a/components/fpspreadsheet/docs/fpspreadsheet-api.chm b/components/fpspreadsheet/docs/fpspreadsheet-api.chm index 16948b9b1..bf8833346 100644 Binary files a/components/fpspreadsheet/docs/fpspreadsheet-api.chm and b/components/fpspreadsheet/docs/fpspreadsheet-api.chm differ diff --git a/components/fpspreadsheet/docs/fpspreadsheet-wiki.chm b/components/fpspreadsheet/docs/fpspreadsheet-wiki.chm index 753160af2..b8596bb0b 100644 Binary files a/components/fpspreadsheet/docs/fpspreadsheet-wiki.chm and b/components/fpspreadsheet/docs/fpspreadsheet-wiki.chm differ diff --git a/components/fpspreadsheet/docs/wiki/make_docs.bat b/components/fpspreadsheet/docs/wiki/make_docs.bat index 559a05b6b..466116199 100644 --- a/components/fpspreadsheet/docs/wiki/make_docs.bat +++ b/components/fpspreadsheet/docs/wiki/make_docs.bat @@ -3,11 +3,12 @@ echo off rem set FMT=html set FMT=chm echo Downloading wiki... -wikiget --page=FPSpreadsheet --page=FPSpreadsheet:_List_of_formulas --page=RPN_Formulas_in_FPSpreadsheet + +wikiget --page=FPSpreadsheet --page=FPSpreadsheet:_Examples --page=FPSpreadsheet:_List_of_formulas --page=RPN_Formulas_in_FPSpreadsheet wikiget --page=FPSpreadsheet_tutorial:_Writing_a_mini_spreadsheet_application wikiget --page=TsWorksheetGrid --page=TsWorksheetChartSource echo. echo Converting wiki to chm... -wikiconvert --format=%FMT% --css=css/wiki.css --root="FPSpreadsheet wiki pages" --title="FPSpreadsheet wiki pages (offline version, created %DATE%)" --chm="..\fpspreadsheet-wiki.chm" wikixml/FPSpreadsheet.s00.xml wikixml/FPSpreadsheet=3A_List_of_formulas*.xml wikixml/RPN_Formulas*.xml wikixml/FPSpreadsheet_tutorial=3A_Writing*.xml wikixml/TsWorksheet*.xml +wikiconvert --format=%FMT% --css=css/wiki.css --root="FPSpreadsheet wiki pages" --title="FPSpreadsheet wiki pages (offline version, created %DATE%)" --chm="..\fpspreadsheet-wiki.chm" wikixml/FPSpreadsheet.s00.xml wikixml/FPSpreadsheet=3A_Examples*.xml wikixml/FPSpreadsheet=3A_List_of_formulas*.xml wikixml/RPN_Formulas*.xml wikixml/FPSpreadsheet_tutorial=3A_Writing*.xml wikixml/TsWorksheet*.xml set FMT= \ No newline at end of file diff --git a/components/fpspreadsheet/examples/chartdemo/chartdemo.lpi b/components/fpspreadsheet/examples/chartdemo/chartdemo.lpi deleted file mode 100644 index 0dd0d610a..000000000 --- a/components/fpspreadsheet/examples/chartdemo/chartdemo.lpi +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - <UseAppBundle Value="False"/> - <ResourceType Value="res"/> - </General> - <BuildModes Count="1"> - <Item1 Name="Default" Default="True"/> - </BuildModes> - <PublishOptions> - <Version Value="2"/> - <UseFileFilters Value="True"/> - </PublishOptions> - <RunParams> - <FormatVersion Value="2"/> - <Modes Count="0"/> - </RunParams> - <RequiredPackages Count="1"> - <Item1> - <PackageName Value="laz_fpspreadsheet"/> - </Item1> - </RequiredPackages> - <Units Count="1"> - <Unit0> - <Filename Value="chartdemo.lpr"/> - <IsPartOfProject Value="True"/> - </Unit0> - </Units> - </ProjectOptions> - <CompilerOptions> - <Version Value="11"/> - <PathDelim Value="\"/> - <Target> - <Filename Value="chartdemo"/> - </Target> - <SearchPaths> - <IncludeFiles Value="$(ProjOutDir)"/> - <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> - </SearchPaths> - </CompilerOptions> - <Debugging> - <Exceptions Count="3"> - <Item1> - <Name Value="EAbort"/> - </Item1> - <Item2> - <Name Value="ECodetoolError"/> - </Item2> - <Item3> - <Name Value="EFOpenError"/> - </Item3> - </Exceptions> - </Debugging> -</CONFIG> diff --git a/components/fpspreadsheet/examples/chartdemo/chartdemo.lpr b/components/fpspreadsheet/examples/chartdemo/chartdemo.lpr deleted file mode 100644 index fab54660d..000000000 --- a/components/fpspreadsheet/examples/chartdemo/chartdemo.lpr +++ /dev/null @@ -1,44 +0,0 @@ -program chartdemo; - -uses - fpspreadsheet, fpsutils, fpstypes, fpschart; - -var - wb: TsWorkbook; - sh: TsWorksheet; - chart: TsChart; - ser: TsChartSeries; - idx: Integer; - -begin - wb := TsWorkbook.Create; - try - ws := wb.AddWorksheet('Test'); - // x values - ws.WriteNumber(0, 0, 1.0); - ws.WriteNumber(1, 0, 2.1); - ws.WriteNumber(2, 0, 2.9); - ws.WriteNumber(3, 0, 4.15); - ws.WriteNumber(4, 0, 5.05); - // y values - ws.WriteNumber(0, 1, 10.0); - ws.WriteNumber(1, 1, 12.0); - ws.WriteNumber(2, 1, 9.0); - ws.WriteNumber(3, 1, 7.5); - ws.WriteNumber(4, 1, 11.2); - - idx := ws.WriteChart(0, 0, 12, 9); - chart := ws.GetChart(idx); - ser := TsLineSeries.Create(chart); - ser.XRange := Range(0, 0, 4, 0); - ser.YRange := Range(0, 1, 4, 1); - ser.Title := 'Scatter series'; - ser.ShowSymbols := true; - ser.ShowLines := true; - - chart.AddSeries( - finally - wb.Free; - end; -end. - diff --git a/components/fpspreadsheet/laz_fpspreadsheet.lpk b/components/fpspreadsheet/laz_fpspreadsheet.lpk index 16029f3a7..af4210749 100644 --- a/components/fpspreadsheet/laz_fpspreadsheet.lpk +++ b/components/fpspreadsheet/laz_fpspreadsheet.lpk @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <CONFIG> - <Package Version="4"> + <Package Version="5"> <PathDelim Value="\"/> <Name Value="laz_fpspreadsheet"/> <Author Value="Felipe Monteiro de Carvalho and others"/> @@ -31,10 +31,10 @@ </CompilerOptions> <Description Value="laz_fpspreadsheet is a non-visual component that allows you to use the fpspreadsheet package to read/write spreadsheet files in .xls (BIFF/Excel), .ods OpenDocument (LibreOffice/OpenOffice) and .xlsx Open XML (Excel) formats. -This package is all you need if you don't want graphical components (like grids and charts)."/> +This package is all you need if you don't want graphical components (like grids and charts)."/> <License Value="LGPL with static linking exception. This is the same license as is used in the LCL (Lazarus Component Library)."/> - <Version Major="1" Minor="11"/> - <Files Count="47"> + <Version Major="1" Minor="12"/> + <Files Count="46"> <Item1> <Filename Value="source\fps.inc"/> <Type Value="Include"/> @@ -258,10 +258,6 @@ This package is all you need if you don't want graphical components (like grids <Filename Value="source\common\fpscrypto.pas"/> <UnitName Value="fpsCrypto"/> </Item46> - <Item47> - <Filename Value="source\common\fpschart.pas"/> - <UnitName Value="fpschart"/> - </Item47> </Files> <i18n> <EnableI18N Value="True"/> diff --git a/components/fpspreadsheet/laz_fpspreadsheet_crypto.lpk b/components/fpspreadsheet/laz_fpspreadsheet_crypto.lpk index 370582a9c..f2ceb956b 100644 --- a/components/fpspreadsheet/laz_fpspreadsheet_crypto.lpk +++ b/components/fpspreadsheet/laz_fpspreadsheet_crypto.lpk @@ -13,7 +13,7 @@ </SearchPaths> </CompilerOptions> <Description Value="Encryption / decryption support for FPSpreadsheet"/> - <Version Major="1" Minor="11"/> + <Version Major="1" Minor="12"/> <Files Count="2"> <Item1> <Filename Value="source\crypto\xlsxdecrypter.pas"/> @@ -30,8 +30,8 @@ </Item1> <Item2> <PackageName Value="laz_fpspreadsheet"/> - <MaxVersion Major="1" Minor="10"/> - <MinVersion Major="1" Minor="11" Valid="True"/> + <MaxVersion Major="1" Minor="11"/> + <MinVersion Major="1" Minor="12" Valid="True"/> </Item2> <Item3> <PackageName Value="FCL"/> diff --git a/components/fpspreadsheet/laz_fpspreadsheet_visual.lpk b/components/fpspreadsheet/laz_fpspreadsheet_visual.lpk index 8625a2b7c..b49e0851a 100644 --- a/components/fpspreadsheet/laz_fpspreadsheet_visual.lpk +++ b/components/fpspreadsheet/laz_fpspreadsheet_visual.lpk @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <CONFIG> - <Package Version="4"> + <Package Version="5"> <PathDelim Value="\"/> <Name Value="laz_fpspreadsheet_visual"/> <Author Value="Felipe Monteiro de Carvalho and others"/> @@ -20,7 +20,7 @@ It provides graphical components like a grid and chart."/> <License Value="LGPL with static linking exception. This is the same license as is used in the LCL (Lazarus Component Library)."/> - <Version Major="1" Minor="11"/> + <Version Major="1" Minor="12"/> <Files Count="5"> <Item1> <Filename Value="source\visual\fpspreadsheetchart.pas"/> @@ -46,8 +46,8 @@ It provides graphical components like a grid and chart."/> <RequiredPkgs Count="4"> <Item1> <PackageName Value="laz_fpspreadsheet"/> - <MaxVersion Major="1" Minor="10"/> - <MinVersion Major="1" Minor="11" Valid="True"/> + <MaxVersion Major="1" Minor="11"/> + <MinVersion Major="1" Minor="12" Valid="True"/> </Item1> <Item2> <PackageName Value="tachartlazaruspkg"/> @@ -65,7 +65,6 @@ It provides graphical components like a grid and chart."/> </UsageOptions> <PublishOptions> <Version Value="2"/> - <IgnoreBinaries Value="False"/> </PublishOptions> </Package> </CONFIG> diff --git a/components/fpspreadsheet/laz_fpspreadsheet_visual_dsgn.lpk b/components/fpspreadsheet/laz_fpspreadsheet_visual_dsgn.lpk index 83ff6bc8d..80f4d90d4 100644 --- a/components/fpspreadsheet/laz_fpspreadsheet_visual_dsgn.lpk +++ b/components/fpspreadsheet/laz_fpspreadsheet_visual_dsgn.lpk @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <CONFIG> - <Package Version="4"> + <Package Version="5"> <PathDelim Value="\"/> <Name Value="laz_fpspreadsheet_visual_dsgn"/> <Type Value="RunAndDesignTime"/> @@ -16,7 +16,7 @@ </CompilerOptions> <Description Value="laz_fpspreadsheet_visual_dsgn is the design-tim package for the visual fpspreadsheet components."/> <License Value="LGPL with static linking exception. This is the same license as is used in the LCL (Lazarus Component Library)."/> - <Version Major="1" Minor="11"/> + <Version Major="1" Minor="12"/> <Files Count="1"> <Item1> <Filename Value="source\design\fpsvisualreg.pas"/> @@ -27,8 +27,8 @@ <RequiredPkgs Count="2"> <Item1> <PackageName Value="laz_fpspreadsheet_visual"/> - <MaxVersion Major="1" Minor="10"/> - <MinVersion Major="1" Minor="11" Valid="True"/> + <MaxVersion Major="1" Minor="11"/> + <MinVersion Major="1" Minor="12" Valid="True"/> </Item1> <Item2> <PackageName Value="FCL"/> diff --git a/components/fpspreadsheet/laz_fpspreadsheetexport_visual.lpk b/components/fpspreadsheet/laz_fpspreadsheetexport_visual.lpk index f557f8c27..40dd6ab8b 100644 --- a/components/fpspreadsheet/laz_fpspreadsheetexport_visual.lpk +++ b/components/fpspreadsheet/laz_fpspreadsheetexport_visual.lpk @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <CONFIG> - <Package Version="4"> + <Package Version="5"> <PathDelim Value="\"/> <Name Value="laz_fpspreadsheetexport_visual"/> <Type Value="RunAndDesignTime"/> @@ -25,7 +25,7 @@ It provides a graphical export component on the Data Export tab."/> <License Value="LGPL with static linking exception. This is the same license as is used in the LCL (Lazarus Component Library)."/> - <Version Major="1" Minor="11"/> + <Version Major="1" Minor="12"/> <Files Count="2"> <Item1> <Filename Value="source\export\fpsexport.pas"/> @@ -59,7 +59,6 @@ It provides a graphical export component on the Data Export tab."/> </UsageOptions> <PublishOptions> <Version Value="2"/> - <IgnoreBinaries Value="False"/> </PublishOptions> </Package> </CONFIG> diff --git a/components/fpspreadsheet/source/common/fpschart.pas b/components/fpspreadsheet/source/common/fpschart.pas deleted file mode 100644 index 8ae46d7ba..000000000 --- a/components/fpspreadsheet/source/common/fpschart.pas +++ /dev/null @@ -1,426 +0,0 @@ -unit fpschart; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, Contnrs, fpsTypes, fpsUtils; - -type - TsChart = class; - - TsChartFill = record - Style: TsFillStyle; - FgColor: TsColor; - BgColor: TsColor; - end; - - TsChartPenStyle = (cpsSolid, cpsDashed, cpsDotted, cpsDashDot, cpsDashDotDot, cpsClear); - - TsChartLine = record - Style: TsChartPenStyle; - Width: Double; // mm - Color: TsColor; - end; - - TsChartObj = class - private - FOwner: TsChartObj; - FVisible: Boolean; - public - constructor Create(AOwner: TsChartObj); - property Visible: Boolean read FVisible write FVisible; - end; - - TsChartFillObj = class(TsChartObj) - private - FBackground: TsChartFill; - FBorder: TsChartLine; - public - constructor Create(AOwner: TsChartObj); - property Background: TsChartFill read FBackground write FBackground; - property Border: TsChartLine read FBorder write FBorder; - end; - - TsChartText = class(TsChartObj) - private - FCaption: String; - FShowCaption: Boolean; - FFont: TsFont; - public - constructor Create(AOwner: TsChartObj); - property Caption: String read FCaption write FCaption; - property Font: TsFont read FFont write FFont; - property ShowCaption: Boolean read FShowCaption write FShowCaption; - end; - - TsChartAxis = class(TsChartText) - private - FAutomaticMax: Boolean; - FAutomaticMin: Boolean; - FAutomaticMajorInterval: Boolean; - FAutomaticMinorSteps: Boolean; - FAxisLine: TsChartLine; - FGridLines: TsChartLine; - FInverted: Boolean; - FLabelFont: TsFont; - FLogarithmic: Boolean; - FMajorInterval: Double; - FMajorTickLines: TsChartLine; - FMax: Double; - FMin: Double; - FMinorSteps: Double; - FMinorTickLines: TsChartLine; - FShowGrid: Boolean; - FShowLabels: Boolean; - public - constructor Create(AOwner: TsChartObj); - property AutomaticMax: Boolean read FAutomaticMax write FAutomaticMax; - property AutomaticMin: Boolean read FAutomaticMin write FAutomaticMin; - property AutomaticMajorInterval: Boolean read FAutomaticMajorInterval write FAutomaticMajorInterval; - property AutomaticMinorSteps: Boolean read FAutomaticMinorSteps write FAutomaticMinorSteps; - property AxisLine: TsChartLine read FAxisLine write FAxisLine; - property GridLines: TsChartLine read FGridLines write FGridLines; - property Inverted: Boolean read FInverted write FInverted; - property LabelFont: TsFont read FLabelFont write FLabelFont; - property Logarithmic: Boolean read FLogarithmic write FLogarithmic; - property MajorInterval: Double read FMajorInterval write FMajorInterval; - property MajorTickLines: TsChartLine read FMajorTickLines write FMajorTickLines; - property Max: Double read FMax write FMax; - property Min: Double read FMin write FMin; - property MinorSteps: Double read FMinorSteps write FMinorSteps; - property MinorTickLines: TsChartLine read FMinorTickLines write FMinorTickLines; - property ShowGrid: Boolean read FShowGrid write FShowGrid; - property ShowLabels: Boolean read FShowLabels write FShowLabels; - end; - - TsChartLegend = class(TsChartFillObj) - end; - - TsChartAxisLink = (alPrimary, alSecondary); - - TsChartSeries = class(TsChartObj) - private - FXRange: TsCellRange; // cell range containing the x data - FYRange: TsCellRange; - FLabelsRange: TsCellRange; - FXIndex: array of Integer; // index of data point's x value within XRange - FYIndex: array of Integer; - FLabelsIndex: array of Integer; - FYAxis: TsChartAxisLink; - FTitle: String; - function GetCount: Integer; - public - constructor Create(AChart: TsChart); - property Count: Integer read GetCount; - property LabelsRange: TsCellRange read FLabelsRange; - property Title: String read FTitle; - property XRange: TsCellRange read FXRange write FXRange; - property YRange: TsCellRange read FYRange write FYRange; - property YAxis: TsChartAxisLink read FYAxis write FYAxis; - end; - - TsChartSeriesSymbol = (cssRect, cssDiamond, cssTriangle, cssTriangleDown, - cssCircle, cssStar); - - TsLineSeries = class(TsChartSeries) - private - FLineStyle: TsChartLine; - FShowLines: Boolean; - FShowSymbols: Boolean; - FSymbol: TsChartSeriesSymbol; - FSymbolFill: TsChartFill; - FSymbolBorder: TsChartLine; - FSymbolHeight: Double; // in mm - FSymbolWidth: Double; // in mm - public - constructor Create(AChart: TsChart); - property LineStyle: TsChartLine read FLineStyle write FLineStyle; - property ShowLines: Boolean read FShowLines write FShowLines; - property ShowSymbols: Boolean read FShowSymbols write FShowSymbols; - property Symbol: TsChartSeriesSymbol read FSymbol write FSymbol; - property SymbolBorder: TsChartLine read FSymbolBorder write FSymbolBorder; - property SymbolFill: TsChartFill read FSymbolFill write FSymbolFill; - property SymbolHeight: double read FSymbolHeight write FSymbolHeight; - property SymbolWidth: double read FSymbolWidth write FSymbolWidth; - end; - - TsChartSeriesList = class(TFPList) - private - function GetItem(AIndex: Integer): TsChartSeries; - procedure SetItem(AIndex: Integer; AValue: TsChartSeries); - public - property Items[AIndex: Integer]: TsChartSeries read GetItem write SetItem; default; - end; - - TsChart = class(TsChartFillObj) - private - FSheetIndex: Integer; - FRow, FCol: Cardinal; - FOffsetX, FOffsetY: Double; - FWidth, FHeight: Double; // Width, Height of the chart, in mm. - - FPlotArea: TsChartFillObj; - FXAxis: TsChartAxis; - FYAxis: TsChartAxis; - FY2Axis: TsChartAxis; - - FTitle: TsChartText; - FSubTitle: TsChartText; - FLegend: TsChartLegend; - FSeriesList: TsChartSeriesList; - public - constructor Create; - destructor Destroy; override; - function AddSeries(ASeries: TsChartSeries): Integer; - - { Index of worksheet sheet which contains the chart. } - property SheetIndex: Integer read FSheetIndex write FSheetIndex; - { Row index of the cell in which the chart has its top/left corner (anchor) } - property Row: Cardinal read FRow write FRow; - { Column index of the cell in which the chart has its top/left corner (anchor) } - property Col: Cardinal read FCol write FCol; - { Offset of the left chart edge relative to the anchor cell, in mm } - property OffsetX: double read FOffsetX write FOffsetX; - { Offset of the top chart edge relative to the anchor cell, in mm } - property OffsetY: double read FOffsetY write FOffsetY; - { Width of the chart, in mm } - property Width: double read FWidth write FHeight; - { Height of the chart, in mm } - property Height: double read FHeight write FHeight; - - { Attributes of the plot area (rectangle enclosed by axes) } - property PlotArea: TsChartFillObj read FPlotArea write FPlotArea; - - { Attributes of the chart's title } - property Title: TsChartText read FTitle write FTitle; - { Attributes of the chart's subtitle } - property Subtitle: TsChartText read FSubtitle write FSubTitle; - { Attributs of the chart's legend } - property Legend: TsChartLegend read FLegend write FLegend; - - { Attributes of the plot's primary x axis (bottom) } - property XAxis: TsChartAxis read FXAxis write FXAxis; - { Attributes of the plot's primary y axis (left) } - property YAxis: TsChartAxis read FYAxis write FYAxis; - { Attributes of the plot's secondary y axis (right) } - property Y2Axis: TsChartAxis read FY2Axis write FY2Axis; - - { Attributes of the series } - property Series: TsChartSeriesList read FSeriesList write FSeriesList; - end; - - TsChartList = class(TObjectList) - private - function GetItem(AIndex: Integer): TsChart; - procedure SetItem(AIndex: Integer; AValue: TsChart); - public - property Items[AIndex: Integer]: TsChart read GetItem write SetItem; default; - end; - - -implementation - -const - DEFAULT_LINE_WIDTH = 0.75; // pts - - -{ TsChartObj } - -constructor TsChartObj.Create(AOwner: TsChartObj); -begin - inherited Create; - FOwner := AOwner; - FVisible := true; -end; - - -{ TsChartFillObj } - -constructor TsChartFillObj.Create(AOwner: TsChartObj); -begin - inherited Create(AOwner); - FBackground.Style := fsSolidFill; - FBackground.BgColor := scWhite; - FBackground.FgColor := scWhite; - FBorder.Style := cpsSolid; - FBorder.Width := PtsToMM(DEFAULT_LINE_WIDTH); - FBorder.Color := scBlack; -end; - - -{ TsChartText } - -constructor TsChartText.Create(AOwner: TsChartObj); -begin - inherited Create(AOwner); - FShowCaption := true; - FFont.FontName := ''; // replace by workbook's default font - FFont.Size := 0; // replace by workbook's default font size - FFont.Style := []; - FFont.Color := scBlack; -end; - - -{ TsChartAxis } - -constructor TsChartAxis.Create(AOwner: TsChartObj); -begin - inherited Create(AOwner); - - FAutomaticMajorInterval := true; - FAutomaticMinorSteps := true; - - FLabelFont.FontName := ''; // replace by workbook's default font - FLabelFont.Size := 0; // Replace by workbook's default font size - FLabelFont.Style := []; - FLabelFont.Color := scBlack; - - FShowLabels := true; - - FAxisLine.Color := scBlack; - FAxisLine.Style := cpsSolid; - FAxisLine.Width := PtsToMM(DEFAULT_LINE_WIDTH); - - FMajorTickLines.Color := scBlack; - FMajorTickLines.Style := cpsSolid; - FMajorTickLines.Width := PtsToMM(DEFAULT_LINE_WIDTH); - - FMinorTickLines.Color := scBlack; - FMinorTickLines.Style := cpsSolid; - FMinorTickLines.Width := PtsToMM(DEFAULT_LINE_WIDTH); - - FGridLines.Color := scSilver; - FGridLines.Style := cpsDotted; - FGridLines.Width := PtsToMM(DEFAULT_LINE_WIDTH); -end; - - -{ TsChartSeries } - -constructor TsChartSeries.Create(AChart: TsChart); -begin - inherited Create(AChart); - AChart.AddSeries(self); - FTitle := 'Series ' + IntToStr(AChart.Series.Count); -end; - -function TsChartSeries.GetCount: Integer; -begin - Result := Length(FYIndex); -end; - - -{ TsChartSeriesList } - -function TsChartSeriesList.GetItem(AIndex: Integer): TsChartSeries; -begin - Result := TsChartSeries(inherited Items[AIndex]); -end; - -procedure TsChartSeriesList.SetItem(AIndex: Integer; AValue: TsChartSeries); -begin - inherited Items[AIndex] := AValue; -end; - - -{ TsLineSeries } - -constructor TsLineSeries.Create(AChart: TsChart); -begin - inherited Create(AChart); - - FLineStyle.Color := scBlack; - FLineStyle.Style := cpsSolid; - FLineStyle.Width := PtsToMM(DEFAULT_LINE_WIDTH); - - FSymbolBorder.Color := scBlack; - FSymbolBorder.Style := cpsSolid; - FSymbolBorder.Width := PtsToMM(DEFAULT_LINE_WIDTH); - - FSymbolFill.FgColor := scWhite; - FSymbolFill.BgColor := scWhite; - FSymbolFill.Style := fsSolidFill; - - FSymbolWidth := 2.5; - FSymbolHeight := 2.5; -end; - - -{ TsChart } - -constructor TsChart.Create; -begin - inherited Create(nil); - - FSheetIndex := 0; - FRow := 0; - FCol := 0; - FOffsetX := 0.0; - FOffsetY := 0.0; - FWidth := 12; - FHeight := 9; - - FTitle := TsChartText.Create(self); - FTitle.Font.Size := 14; - - FSubTitle := TsChartText.Create(self); - FSubTitle.Font.Size := 12; - - FLegend := TsChartLegend.Create(self); - - FXAxis := TsChartAxis.Create(self); - FXAxis.Caption := 'x axis'; - FXAxis.LabelFont.Size := 9; - FXAxis.Font.Size := 10; - FXAxis.Font.Style := [fssBold]; - - FYAxis := TsChartAxis.Create(self); - FYAxis.Caption := 'y axis'; - FYAxis.LabelFont.Size := 9; - FYAxis.Font.Size := 10; - FYAxis.Font.Style := [fssBold]; - - FY2Axis := TsChartAxis.Create(self); - FY2Axis.Caption := 'Secondary y axis'; - FY2Axis.LabelFont.Size := 9; - FY2Axis.Font.Size := 10; - FY2Axis.Font.Style := [fssBold]; - FYAxis.Visible := false; - - FSeriesList := TsChartSeriesList.Create; -end; - -destructor TsChart.Destroy; -begin - FSeriesList.Free; - FXAxis.Free; - FYAxis.Free; - FY2Axis.Free; - FLegend.Free; - FTitle.Free; - FSubtitle.Free; - inherited; -end; - -function TsChart.AddSeries(ASeries: TsChartSeries): Integer; -begin - Result := FSeriesList.Add(ASeries); -end; - - -{ TsChartList } - -function TsChartList.GetItem(AIndex: Integer): TsChart; -begin - Result := TsChart(inherited Items[AIndex]); -end; - -procedure TsChartlist.SetItem(AIndex: Integer; AValue: TsChart); -begin - inherited Items[AIndex] := AValue; -end; - -end. - diff --git a/components/fpspreadsheet/source/common/fpspreadsheet.pas b/components/fpspreadsheet/source/common/fpspreadsheet.pas index 755f5ad30..41e565453 100644 --- a/components/fpspreadsheet/source/common/fpspreadsheet.pas +++ b/components/fpspreadsheet/source/common/fpspreadsheet.pas @@ -24,7 +24,7 @@ uses {$endif}{$endif}{$endif} Classes, SysUtils, fpimage, avglvltree, lconvencoding, fpsTypes, fpsExprParser, fpsClasses, fpsNumFormat, fpsPageLayout, - fpsImages, fpsChart; + fpsImages; type { Forward declarations } @@ -75,7 +75,6 @@ type FHyperlinks: TsHyperlinks; FFormulas: TsFormulas; FImages: TFPList; - FCharts: TsChartList; FRows, FCols: TIndexedAVLTree; // This lists contain only rows or cols with styles different from default FActiveCellRow: Cardinal; FActiveCellCol: Cardinal; @@ -579,12 +578,6 @@ type procedure AddHyperlinkToImage(AImageIndex: Integer; ATarget: String; AToolTip: String = ''); - { Charts } - function GetChartByIndex(AIndex: Integer): TsChart; - function GetChartCount: Integer; - function WriteChart(ARow, ACol: Cardinal; AWidth, AHeight: Double; - AOffsetX: Double = 0.0; AOffsetY: Double = 0.0): Integer; - { Protection } procedure Protect(AEnable: Boolean); @@ -1178,7 +1171,6 @@ begin FHyperlinks := TsHyperlinks.Create; FFormulas := TsFormulas.Create; FImages := TFPList.Create; - FCharts := TsChartList.Create; FPageLayout := TsPageLayout.Create(self); @@ -1222,7 +1214,6 @@ begin FHyperlinks.Free; FFormulas.Free; FImages.Free; - FCharts.Free; inherited Destroy; end; @@ -3782,46 +3773,6 @@ begin DeleteFormula(ACell); end; -{@@ ---------------------------------------------------------------------------- - Returns the chart having the given index in the worksheet's chart list --------------------------------------------------------------------------------} -function TsWorksheet.GetChartByIndex(AIndex: Integer): TsChart; -begin - if (AIndex >= 0) and (AIndex < FCharts.Count) then - Result := FCharts[AIndex] - else - Result := nil; -end; - -{@@ ---------------------------------------------------------------------------- - Returns the number of charts embedded on this sheet --------------------------------------------------------------------------------} -function TsWorksheet.GetChartCount: Integer; -begin - Result := FCharts.Count; -end; - -{@@ ---------------------------------------------------------------------------- - Creates a chart object with its top/left corner in the specified row/colum and - having the specified width. Inserts the chart in the FCharts list of the - worksheet and returns its index. --------------------------------------------------------------------------------} -function TsWorksheet.WriteChart(ARow, ACol: Cardinal; AWidth, AHeight: Double; - AOffsetX: Double = 0.0; AOffsetY: Double = 0.0): Integer; -var - chart: TsChart; -begin - chart := TsChart.Create; - chart.SheetIndex := (FWorkbook as TsWorkbook).GetWorksheetIndex(self); - chart.Row := ARow; - chart.Col := ACol; - chart.OffsetX := AOffsetX; - chart.OffsetY := AOffsetY; - chart.Width := AWidth; - chart.Height := AHeight; - Result := FCharts.Add(chart); -end; - {@@ ---------------------------------------------------------------------------- Returns the parameters of the image stored in the internal image list at the specified index. diff --git a/components/fpspreadsheet/source/visual/fpspreadsheetgrid.pas b/components/fpspreadsheet/source/visual/fpspreadsheetgrid.pas index 2dcdb1c84..be68422fc 100644 --- a/components/fpspreadsheet/source/visual/fpspreadsheetgrid.pas +++ b/components/fpspreadsheet/source/visual/fpspreadsheetgrid.pas @@ -5621,7 +5621,7 @@ begin end; end; -{@@----------------------------------------------------------------------------- +{@@ ---------------------------------------------------------------------------- Shows the row with the specified index previously hidden -------------------------------------------------------------------------------} procedure TsCustomWorksheetGrid.ShowRow(ARow: Integer);