From 31bd09295576dd01a2fbd582f4b5c7a1e43032f1 Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Fri, 13 Mar 2015 14:54:55 +0000 Subject: [PATCH] fpspreadsheet: Fix WorksheetGrid not calculating formulas in current cell git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4021 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- .../fpspreadsheet/examples/visual/shared/ssortparamsform.pas | 2 +- components/fpspreadsheet/examples/visual/spready/spready.lpr | 2 +- components/fpspreadsheet/fpspreadsheet.pas | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/components/fpspreadsheet/examples/visual/shared/ssortparamsform.pas b/components/fpspreadsheet/examples/visual/shared/ssortparamsform.pas index 4627cb407..a3eb028d4 100644 --- a/components/fpspreadsheet/examples/visual/shared/ssortparamsform.pas +++ b/components/fpspreadsheet/examples/visual/shared/ssortparamsform.pas @@ -171,7 +171,7 @@ end; procedure TSortParamsForm.UpdateColRowList; var L: TStrings; - r,c: Cardinal; + r,c: LongInt; r1,c1, r2,c2: Cardinal; begin with FWorksheetGrid do begin diff --git a/components/fpspreadsheet/examples/visual/spready/spready.lpr b/components/fpspreadsheet/examples/visual/spready/spready.lpr index 7b98d34c1..e9a06862c 100644 --- a/components/fpspreadsheet/examples/visual/spready/spready.lpr +++ b/components/fpspreadsheet/examples/visual/spready/spready.lpr @@ -4,7 +4,7 @@ program spready; uses Interfaces, // this includes the LCL widgetset - Forms, mainform, laz_fpspreadsheet_visual, sCtrls, fpsCurrency, + Forms, mainform, sCtrls, fpsCurrency, scsvparamsform, sfcurrencyform, sformatsettingsform, ssortparamsform; {$R *.res} diff --git a/components/fpspreadsheet/fpspreadsheet.pas b/components/fpspreadsheet/fpspreadsheet.pas index 0c2008523..83666be68 100755 --- a/components/fpspreadsheet/fpspreadsheet.pas +++ b/components/fpspreadsheet/fpspreadsheet.pas @@ -1601,10 +1601,13 @@ end; @param ACol Column index of the cell which has been changed -------------------------------------------------------------------------------} procedure TsWorksheet.ChangedCell(ARow, ACol: Cardinal); +var + cell: PCell; begin if (FWorkbook.FCalculationLock = 0) and (boAutoCalc in FWorkbook.Options) then begin - if CellUsedInFormula(ARow, ACol) then + cell := FindCell(ARow, ACol); + if HasFormula(cell) or CellUsedInFormula(ARow, ACol) then CalcFormulas; end; if Assigned(FOnChangeCell) then