You've already forked lazarus-ccr
fpspreadsheet: WorksheetGrid and CellEditor respect worksheet and cell protection
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5811 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -2042,7 +2042,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
end else
|
end else
|
||||||
Clear;
|
Clear;
|
||||||
|
|
||||||
FOldText := Lines.Text;
|
FOldText := Lines.Text;
|
||||||
|
|
||||||
|
ReadOnly := Worksheet.IsProtected and
|
||||||
|
(cpLockCell in Worksheet.ReadCellProtection(ACell));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
@ -91,6 +91,7 @@ type
|
|||||||
FRowHeightLock: Integer;
|
FRowHeightLock: Integer;
|
||||||
FActiveCellLock: Integer;
|
FActiveCellLock: Integer;
|
||||||
FTopLeft: TPoint;
|
FTopLeft: TPoint;
|
||||||
|
FReadOnly: Boolean;
|
||||||
FOnClickHyperlink: TsHyperlinkClickEvent;
|
FOnClickHyperlink: TsHyperlinkClickEvent;
|
||||||
function CalcAutoRowHeight(ARow: Integer): Integer;
|
function CalcAutoRowHeight(ARow: Integer): Integer;
|
||||||
function CalcColWidthFromSheet(AWidth: Single): Integer;
|
function CalcColWidthFromSheet(AWidth: Single): Integer;
|
||||||
@ -206,6 +207,7 @@ type
|
|||||||
function CalcTopLeft(AHeaderOnly: Boolean): TPoint;
|
function CalcTopLeft(AHeaderOnly: Boolean): TPoint;
|
||||||
function CalcWorksheetColWidth(AValue: Integer): Single;
|
function CalcWorksheetColWidth(AValue: Integer): Single;
|
||||||
function CalcWorksheetRowHeight(AValue: Integer): Single;
|
function CalcWorksheetRowHeight(AValue: Integer): Single;
|
||||||
|
function CanEditShow: boolean; override;
|
||||||
function CellOverflow(ACol, ARow: Integer; AState: TGridDrawState;
|
function CellOverflow(ACol, ARow: Integer; AState: TGridDrawState;
|
||||||
out ACol1, ACol2: Integer; var ARect: TRect): Boolean;
|
out ACol1, ACol2: Integer; var ARect: TRect): Boolean;
|
||||||
procedure ColRowMoved(IsColumn: Boolean; FromIndex,ToIndex: Integer); override;
|
procedure ColRowMoved(IsColumn: Boolean; FromIndex,ToIndex: Integer); override;
|
||||||
@ -1356,6 +1358,10 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TsCustomWorksheetGrid.CanEditShow: Boolean;
|
||||||
|
begin
|
||||||
|
Result := inherited and (not FReadOnly);
|
||||||
|
end;
|
||||||
|
|
||||||
{@@ ----------------------------------------------------------------------------
|
{@@ ----------------------------------------------------------------------------
|
||||||
Looks for overflowing cells: if the text of the given cell is longer than
|
Looks for overflowing cells: if the text of the given cell is longer than
|
||||||
@ -4488,6 +4494,12 @@ begin
|
|||||||
AutoExpandToCol(gcol, aeNavigation);
|
AutoExpandToCol(gcol, aeNavigation);
|
||||||
if (grow <> Row) or (gcol <> Col) then
|
if (grow <> Row) or (gcol <> Col) then
|
||||||
MoveExtend(false, gcol, grow);
|
MoveExtend(false, gcol, grow);
|
||||||
|
if Worksheet.IsProtected then
|
||||||
|
begin
|
||||||
|
cell := Worksheet.FindCell(Worksheet.ActiveCellRow, Worksheet.ActiveCellCol);
|
||||||
|
FReadOnly := (cell = nil) or (cpLockCell in Worksheet.ReadCellProtection(cell));
|
||||||
|
end else
|
||||||
|
FReadOnly := false;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Abort selection because of an error
|
// Abort selection because of an error
|
||||||
|
Reference in New Issue
Block a user