Ver Mensaje Individual
  #2  
Antiguo 05-06-2006
celades1 celades1 is offline
Miembro
 
Registrado: ago 2005
Posts: 116
Reputación: 19
celades1 Va por buen camino
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;
Responder Con Cita