Por cierto, veo que usas el evento KeyPress para convertir a mayúsculas el texto que se escribe. Pero ya entrados en gastos, puedes añadir un método más a la nueva clase:
Código Delphi
[-]
TStringGrid = class(Grids.TStringGrid)
protected
function GetEditLimit: Integer; override;
function CreateEditor: TInplaceEdit; override;
end;
CreateEditor es el encargado de crear el objeto TEdit que se usa para editar el contenido de una celda. Puedes aprovechar el momento en que se crea para establecer su propiedad CharCase:
Código Delphi
[-]
type
TExInplaceEdit = class(Grids.TInplaceEdit);
function TStringGrid.CreateEditor: TInplaceEdit;
begin
Result := inherited CreateEditor;
TExInplaceEdit(Result).CharCase := ecUpperCase;
end;
Lo del TExInplaceEdit es un truco para poder acceder a la propiedad CharCase del TInplaceEdit, ya que está protegida y no puede usarse directamente.
Con esto te ahorras ya todo el evento KeyPress.
Bye