Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Limitar entrada de texto en un DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=32397)

Er_Manué 05-06-2006 13:29:06

Limitar entrada de texto en un DBGrid
 
Hola,Tengo un DBGrid asociado a un ADOTable; uno d los campos es de tipo float, y me gustaría controlarlo antes de que se validara; para así, entre otras cosas, poder limitar el número de caracteres introducidos por el usuario, y por ejemplo no permitir que el usuario introduzca el caracter e.

Gracias

celades1 05-06-2006 14:56:53

Hola

Para no dejar escribir una e
evento on keypress del grid

if key='e' then key:=#0;

yo para canviar el separador decimal el punto por la coma

if key='.' then key:=',';

Para que salte en un grid al presionar un digito de mas
mirate el ejemplo evento onkeyup del dbgrid donde
DBGAssentament es el dbgrid
assentamentdeure,assentamenthaber son fields del dataset assentament
n_digits es el numero de digitos maximos
El ejemplo me funciona en mi aplicación

Código Delphi [-]
procedure TFDades_Assentament.DBGAssentamentKeyUp(Sender: TObject;var Key: Word; Shift: TShiftState);
Var
  B: integer;
  texte:string;
begin
  if ((DBGAssentament.SelectedField=assentamentdeure) or (DBGAssentament.SelectedField=assentamenthaber))
  AND (key<>VK_LEFT) AND (key<>VK_RIGHT) AND (key<>VK_UP) AND (key<>VK_DOWN) AND (KEY<>0)
   then begin
      for B := 0 to (DBGAssentament.ControlCount - 1) do begin
          if DBGAssentament.Controls[b] is TInPlaceEdit then begin
             with DBGAssentament.Controls[b] as TInPlaceEdit do begin
                texte := Text;
             end;
          end;
          if length(texte)>=n_digits then
          DBGAssentament.SelectedIndex:=DBGAssentament.SelectedIndex+1;
     end;
  end;
end;

Er_Manué 13-06-2006 17:48:21

No era exactamente lo que buscaba, pero me ha servido :) gracias ;)


La franja horaria es GMT +2. Ahora son las 12:12:14.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi