Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Edit monetario, solo numeros , limitar decimales. (https://www.clubdelphi.com/foros/showthread.php?t=91836)

look 11-05-2017 03:11:53

Edit monetario, solo numeros , limitar decimales.
 
Que tal amigos, tengo el siguiente codigo, este me permite ingresar solo numeros en un edit, algo asi : "99999.9999", lo que quiero es liminar la cantidad de decimales, y tambien agregar el simbolo de miles "," en la posicion correcta mientras se escribe en el edit...

Código Delphi [-]
    procedure TFrmMain.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if not (Key in [#8, '0'..'9', '-', '.']) then
      begin
        Key := #0;
      end
      else
      if ((Key = '.') or (Key = '-')) and (Pos(Key, (Sender as TEdit).Text) > 0) then
      begin
        Key := #0;
      end
      else
      if (Key = '-') and  ((Sender as TEdit).SelStart <> 0) then
      begin
        Key := #0;
      end;
     
    end;

olbeup 11-05-2017 09:23:28

Hola Look,

Limitar el número de decimales lo tienes bien facil, miralo Aquí

Lo de poner la coma (,) como separador de millares en un Edit es un error, a la hora de asignar el valor del Edit en alguna variable numérica o grabar en la BBDD te dara error, seria mejor que conforme vayas escribiendo lo pusiera en un StaticText ya separado.

Un saludo

look 12-05-2017 01:03:30

Cita:

Empezado por olbeup (Mensaje 516550)
Hola Look,

Limitar el número de decimales lo tienes bien facil, miralo Aquí

Lo de poner la coma (,) como separador de millares en un Edit es un error, a la hora de asignar el valor del Edit en alguna variable numérica o grabar en la BBDD te dara error, seria mejor que conforme vayas escribiendo lo pusiera en un StaticText ya separado.

Un saludo

hola amigo, gracias por tu ayuda, probe el ejemplo que me pasaste y en efecto funciona , solo que hay un pequenio detalle, al precionar la tecla "." el pone una coma es decir yo trato de ingresar "9.99", pero me pone "9,99", tambien , no puedo ingresar una cantidad de mas de dos digitos...

olbeup 12-05-2017 08:16:24

Cita:

Empezado por look (Mensaje 516586)
hola amigo, gracias por tu ayuda, probe el ejemplo que me pasaste y en efecto funciona , solo que hay un pequenio detalle, al precionar la tecla "." el pone una coma es decir yo trato de ingresar "9.99", pero me pone "9,99", tambien , no puedo ingresar una cantidad de mas de dos digitos...

Hola look,

1ª Pregunta
Cita:

probe el ejemplo que me pasaste y en efecto funciona , solo que hay un pequenio detalle, al precionar la tecla "." el pone una coma es decir yo trato de ingresar "9.99", pero me pone "9,99"
Pues lo tienes bastante fácil, sólo tienes que quitar la primera línea donde comprueba que si la "Key = WVK_POINT"

2ª Pregunta
Cita:

tambien , no puedo ingresar una cantidad de mas de dos digitos...
Pues revisa 1ª Pregunta, sólo tienes que quitar la línea donde comprueba el número de decimles o subir el número de decimales que quieres.

Un saludo


La franja horaria es GMT +2. Ahora son las 13:27:02.

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