Te propongo una alternativa que cubriría todos los casos.
En el formulario donde tienes el StringGrid, coloca esta declaración:
Código Delphi
[-]
type
TStringGrid = class(Grids.TStringGrid)
protected
function GetEditLimit: Integer; override;
end;
TForm1 = class(TForm)
StringGrid1: TStringGrid;
private
public
end;
Esto define una clase derivada de TStringGrid que se llama igual. Al colocarla
antes de la declaración del formulario, logras que el StringGrid que ahí tienes, sea ahora de la nueva clase.
En dicha nueva clase, lo que hacemos es redefinir el método virtual GetEditLimit. Este método indica cuál es el máximo número de caracteres que acepta una celda del
grid. El método original simplemente regresa 0, indicando que no hay límite. Nosotros podemos definirlo para dar distintos valores, según las circunstancias:
Código Delphi
[-]
function TStringGrid.GetEditLimit: Integer;
begin
if Col = 2 then
Result := 50
else
Result := inherited GetEditLimit;
end;
Bye