fpspreadsheet: Fix crash when copying a formula to the clipboard (see https://forum.lazarus.freepascal.org/index.php/topic,41161.msg287786.html#msg287786)
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6457 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
parent
38001d24d7
commit
fb9917e10c
@ -1939,19 +1939,23 @@ end;
|
|||||||
-------------------------------------------------------------------------------}
|
-------------------------------------------------------------------------------}
|
||||||
procedure TsWorksheet.CopyFormula(AFromCell, AToCell: PCell);
|
procedure TsWorksheet.CopyFormula(AFromCell, AToCell: PCell);
|
||||||
var
|
var
|
||||||
|
srcSheet, destSheet: TsWorksheet;
|
||||||
srcFormula, destFormula: PsFormula;
|
srcFormula, destFormula: PsFormula;
|
||||||
rpn: TsRPNFormula;
|
rpn: TsRPNFormula;
|
||||||
begin
|
begin
|
||||||
if (AFromCell = nil) or (AToCell = nil) then
|
if (AFromCell = nil) or (AToCell = nil) then
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
DeleteFormula(AToCell);
|
srcSheet := TsWorksheet(AFromCell^.Worksheet);
|
||||||
|
destSheet := TsWorksheet(AToCell^.Worksheet);
|
||||||
|
|
||||||
|
destSheet.DeleteFormula(AToCell);
|
||||||
|
|
||||||
if not HasFormula(AFromCell) then
|
if not HasFormula(AFromCell) then
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
srcFormula := FFormulas.FindFormula(AFromCell^.Row, AFromCell^.Col);
|
srcFormula := srcSheet.Formulas.FindFormula(AFromCell^.Row, AFromCell^.Col);
|
||||||
destFormula := FFormulas.AddFormula(AToCell^.Row, AToCell^.Col);
|
destFormula := destSheet.Formulas.AddFormula(AToCell^.Row, AToCell^.Col);
|
||||||
destFormula.Parser := TsSpreadsheetParser.Create(self);
|
destFormula.Parser := TsSpreadsheetParser.Create(self);
|
||||||
|
|
||||||
srcFormula^.Parser.PrepareCopyMode(AFromCell, AToCell);
|
srcFormula^.Parser.PrepareCopyMode(AFromCell, AToCell);
|
||||||
|
Loading…
Reference in New Issue
Block a user