Impedir la edición de una celda de un TStringGrid

4430 vistas

Queremos que el usuario no pueda editar ciertas celdas de un TStringGrid, dejando las demás editables.

La propiedad Options->goEditing es la que permite la edición de las celdas de un TStringGrid. Por lo tanto, será suficiente activar o desactivar esta propiedad en el evento OnSelectCell según convenga:



delphi
  1. procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  2.   ARow: Integer; var CanSelect: Boolean);
  3. begin
  4.   if (ARow = 1) then  // condición que no impedirá la edición de la celda
  5.     StringGrid1.Options:=StringGrid1.Options-[goEditing] // desactivamos edición
  6.   else
  7.     StringGrid1.Options:=StringGrid1.Options+[goEditing]; // activamos edición
  8. end;