Ver la Versión Completa : Simular MaxLengh en celda stringgrid
voldemmor
12-03-2009, 16:54:19
Hola amugos no se si me explico deseo simular la propiedad MaxLeng(maximo de caracteres) pero para una columna dada.
se que puedo saber que columna es mediante StringGrid1.Col
Gracias por todo
AFilth
12-03-2009, 17:20:56
En el evento OnChange de la celda puedes cmprobar el length de la cadena que te están metiendo y validarla.
roman
12-03-2009, 17:49:36
Las celdas de un StringGrid no tienen eventos :confused:
-------------------------------------------------------
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:
type
TStringGrid = class(Grids.TStringGrid)
protected
function GetEditLimit: Integer; override;
end;
TForm1 = class(TForm)
...
end;
Y defines el método así (por ejemplo):
function TStringGrid.GetEditLimit: Integer;
begin
if Col = 1 then
Result := 5
else
Result := 0;
end;
// Saludos
voldemmor
13-03-2009, 14:42:32
Voy a probar la opcion que medas roman muchas gracias por todo.
Espero no me surjan problemas.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.