Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-06-2005
Kivan Kivan is offline
Miembro
 
Registrado: abr 2005
Posts: 17
Poder: 0
Kivan Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 10-06-2005
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 381
Poder: 20
fidel Va por buen camino
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;
Responder Con Cita
  #3  
Antiguo 10-06-2005
Kivan Kivan is offline
Miembro
 
Registrado: abr 2005
Posts: 17
Poder: 0
Kivan Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 10-06-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
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

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 10-06-2005 a las 10:52:46.
Responder Con Cita
  #5  
Antiguo 10-06-2005
Kivan Kivan is offline
Miembro
 
Registrado: abr 2005
Posts: 17
Poder: 0
Kivan Va por buen camino
Ok, muchas gracias por la ayuda ofrecida.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 12:25: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
Copyright 1996-2007 Club Delphi