diff --git a/components/fpspreadsheet/fpsclasses.pas b/components/fpspreadsheet/fpsclasses.pas index f9903973f..479623c17 100644 --- a/components/fpspreadsheet/fpsclasses.pas +++ b/components/fpspreadsheet/fpsclasses.pas @@ -278,7 +278,7 @@ begin begin rc := curr^; if LongInt(rc.Col) < FStartCol then - dec(rc.Row); + dec(LongInt(rc.Row)); rc.Col := FEndCol; FCurrentNode := FTree.FindNearest(@rc); if FCurrentNode <> nil then begin diff --git a/components/fpspreadsheet/tests/copytests.pas b/components/fpspreadsheet/tests/copytests.pas index c162e6f70..72584184b 100644 --- a/components/fpspreadsheet/tests/copytests.pas +++ b/components/fpspreadsheet/tests/copytests.pas @@ -339,7 +339,7 @@ begin SourceCells[i+(col-2)].UsedFormattingFields = MyWorksheet.ReadUsedFormatting(cell), 'Used formatting fields mismatch, cell ' + CellNotation(myWorksheet, row, col) ); - if (uffBackground in SourceCells[i].UsedFormattingFields) then + if (uffBackground in SourceCells[i+(col-2)].UsedFormattingFields) then CheckEquals( SourceCells[i+(col-2)].BackgroundColor, MyWorksheet.ReadBackgroundColor(cell), @@ -408,7 +408,7 @@ begin end; 6: begin - if row = 0 then + if (row = 0) or (i >= Length(SourceCells)) then expectedFormula := '' else begin