Ver Mensaje Individual
  #3  
Antiguo 12-03-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Las celdas de un StringGrid no tienen eventos

-------------------------------------------------------

La clase TCustomGrid (de la cual deriva TStringGrid) tiene el método GetEditLimit que sirve para establecer la longitud máxima del InPlaceEditor -el TEdit que se usa conforme nos movemos por las celdas.

Tendrías que redefinir ese método en un derivado de TStringGrid. Una manera fácil de hacerlo sin tener que crear e instalar un nuevo componente es declarando un descendiente homónimo antes de la declaración del formulario:

Código Delphi [-]
type
  TStringGrid = class(Grids.TStringGrid)
  protected
    function GetEditLimit: Integer; override;
  end;

  TForm1 = class(TForm)
     ...
  end;

Y defines el método así (por ejemplo):

Código Delphi [-]
function TStringGrid.GetEditLimit: Integer;
begin
  if Col = 1 then
    Result := 5
  else
    Result := 0;
end;

// Saludos
Responder Con Cita