Te la pongo más fácil:
Crea una nueva unidad, ExStringGrid.pas, con el siguiente código:
Código Delphi
[-]
unit ExStringGrid;
interface
uses
StdCtrls, Grids;
type
TStringGrid = class(Grids.TStringGrid)
protected
function GetEditLimit: Integer; override;
function CreateEditor: TInplaceEdit; override;
end;
implementation
type
TExInplaceEdit = class(Grids.TInplaceEdit);
function TStringGrid.CreateEditor: TInplaceEdit;
begin
Result := inherited CreateEditor;
TExInplaceEdit(Result).CharCase := ecUpperCase;
end;
function TStringGrid.GetEditLimit: Integer;
begin
if Col = 2 then
Result := 5
else
Result := inherited GetEditLimit;
end;
end.
que incluye toda la implementación de la clase derivada.
Luego, en tu formulario principal (o donde tengas el StringGrid), incluye la unidad:
Código Delphi
[-]
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, ExStringGrid;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
private
public
end;
var
Form1: TForm1;
El único requisito es que ExStringGrid debe aparecer después de la unidad Grids, de lo contrario no funciona.
Bye