Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Introducir numeros con un maximo de dos decimales (https://www.clubdelphi.com/foros/showthread.php?t=22232)

Kivan 09-06-2005 18:12:14

Introducir numeros con un maximo de dos decimales
 
Hola de nuevo a todos, me gustaria saber como se podria hacer para que en una celda de un DBGrid solamente se puedan escribir numeros de hasta dos decimales. Muchas gracias por adelantado.

fidel 10-06-2005 01:03:17

Hola:

En el DataSet que alimenta el DBGrid, FielEditor, seleccionas el campo que quieres que tenga solo dos decimales, y en la propiedad DisplayFormat pones una mascara así #,###,##0.00

Esto otro funciona con los edits pero no se con DBEdit, puedes probar:
En el evento OnKeyPres pones esto
Código Delphi [-]
procedure TFPrueba.EDosKeyPress(Sender: TObject; var Key: Char);
var
  i: integer;
begin
  DecimalSeparator := ',';
  //controlar entrada solo números
  if ( StrScan('0123456789.'+chr(7)+chr(8), Key) = nil ) then  Key := #0;
  //cambiar punto decimal por coma
  if key = '.' then key := ',';
  //controlar entrada una sola coma
  for i := 1 to length(EDos.Text) do
    if ( copy(EDos.Text,i,1) = ',' ) and not ( StrScan(',', Key) = nil ) then  Key := #0;
end;

Kivan 10-06-2005 09:18:21

Fidel muchas gracias por tu ayuda, pero eso no me ha sido de ayuda porque lo que yo pretendo es que solamente te puedan tecleear dos decimales y que a partir de hay se ignoren el resto d numeros si los introducen.

Lepe 10-06-2005 10:50:22

Esta pregunta ya ha salido antes, y creo que no tiene solución, con DisplayFormat, haces que se muestre con 2 decimales, pero el usuario puede poner 15 decimales, al salir de la celda, incluso se redondea a 2 decimales, y despues en la base de datos, siempre quedará con 2 decimales.

Por tanto no es un error, y no tiene fallos el tema. Solo es una cuestión de "estupidez del usuario" al escribir 15 decimales cuando solo se le está pidiendo 2!!!. Si te dijera algo el usuario... Un breve comentario (con delicadeza) sobre esa "estupidez" y no volverá a decirte nada :D:D

Un saludo

Kivan 10-06-2005 11:41:46

Ok, muchas gracias por la ayuda ofrecida.


La franja horaria es GMT +2. Ahora son las 10:32:49.

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