Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #10  
Antiguo 23-02-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por lmpadron Ver Mensaje
El primer edit recibe el número y en su evento KeyPress hago lo siguiente
Código:
void __fastcall TForm6::DBEdit9KeyPress(TObject *Sender, char &Key)
{
  if(Key == '.')
  {
     Key = ',';
  }
}
Jamás deberías hacer una cosa así. Jamás. Tu código debe respetar las preferencias regionales del usuario, en este caso, el separador que usen para los decimales, coma o punto. No deberías tener que preocuparte por cuál caracter introduce el usuario. La función StrToFloat se encarga de eso y para ello utiliza el valor de la variable global DecimalSeparator. Dicho valor se establece en la inicialización de la unidad SysUtils haciendo una consulta a la configuración regional establecida en el sistema. Tú no deberías alterar el valor de dicha variable y, ni siquiera debería preocuparte saber su valor.

Si el usuario tiene configurado el sistema para usar una coma como separador decimal y oprime un punto, es problema del usuario, tú no debes tratar de adivinar lo que él quería hacer, simplemente dejas que el sistema le marque el error:

Cita:
'4.83' is not a valid floating point value.
A lo sumo, interceptas la excepción para dar un mensaje en español o más amigable:

Código Delphi [-]
var
  a: Double;

begin
  try
    a := StrToFloat(Edit1.Text);
  except
    on EConvertError do
      raise Exception.CreateFmt('%s no es un número flotante válido', [Edit1.Text]);
  end;
end;

En resumen, tu pregunta en este hilo ni siquiera debería darse. No lo digo por molestar, sino para enfatizar el hecho de que tu código no debería preocuparse por esto.

// Saludos
Responder Con Cita
 



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Convertir coma en punto lucho1981 SQL 2 22-04-2009 23:47:06
Coma presionando punto.. Delfino Varios 2 20-10-2007 11:47:11
cambiar el punto por la coma carlosll Varios 6 12-04-2007 19:11:57
Sustituir punto por coma Carlos Arevalo Varios 3 13-10-2005 23:19:40
xml punto coma carlomagno Varios 2 06-09-2004 11:49:35


La franja horaria es GMT +2. Ahora son las 23:53:52.


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