Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-01-2008
Duc Duc is offline
Miembro
 
Registrado: jul 2004
Posts: 49
Poder: 0
Duc Va por buen camino
puntos y comas - decimales

Hola a todos!

Tengo un problema, estoy implementando una aplicación con Delphi y tengo el siguiente problema: Delphi, por defecto, utiliza el punto (.) para separar los decimales, en cambio Windows en castellano, por defecto, utiliza (,) para para separar los decimales. Entonces cuando utilizo un StrToFloat() o un FloatToStr() me da problemas. Lo que tengo que hacer es cambiar la configuración de windows para que utilice el punto para separar los decimales.

El problema es que la aplicación, una vez hecha, si la quiero pasar a algún compañero, se tiene que cambiar la configuració de Windows... lo cual es una chapuza.

Alguien sabe cómo solucionarlo?

Muchas gracias.
Responder Con Cita
  #2  
Antiguo 16-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Al contrario de lo que pensás, las aplicaciones de delphi leen el separador decimal de la configuración de windows.

Si no queres basarte en dicha configuración, podes manipular directamente el valor de la variable DecimalSeparator de la unidad SysUtils (no recomendable si no sabes lo que haces).

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 16-01-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.119
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Me extraña esto, porque se supone que Delphi utiliza cierta variable "DecimalSeparator", que digo yo inicializará con el valor que esté usándose en el sistema. No sé. Digo que me extraña, porque para evitar los problemas que refieres, supongo que usa la variable mencionada (entre otras variables y técnicas, claro), pero, si es como dices... pues chico, no sé...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 16-01-2008
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
Lo que puedes hacer es jugar con la variable DecimalSeparator (char), aquí se almacena el separador decimal de windows.

Yo lo que hago es lo siguentes :

1.- En la introdución de texto : Capturo la tecla pulsada y si la tecla es '.' o ',' la cambio por DecimalSeparator.

2.- En el StrToFloat : si DecimalSeparator = ',' haces un StringReplace y cambias la ',' por el '.'.

Espero te sirva.

Un saúdo.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #5  
Antiguo 16-01-2008
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
¡Qué lento!, aquí el que no corre vuela, se me adelanto jachguate y dec .

Un saúdo.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #6  
Antiguo 16-01-2008
ElDuc ElDuc is offline
Miembro
 
Registrado: jul 2004
Posts: 197
Poder: 21
ElDuc Va por buen camino
Otra cosa

¿Alguien sabe cómo hacer que alpulsar el punto del teclado numérico aparezca una como?
Responder Con Cita
  #7  
Antiguo 16-01-2008
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
Es lo que te comento en el post anterior.

En el evento OnKeyPress del componente comprueba el valor del parmetro key, si key = "." entonces lo cambias por ",".

Yo lo que hago es controlar si key = '.' o ',' y lo cambio por DecimalSeparator.

Un saúdo.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #8  
Antiguo 16-01-2008
Avatar de juanlaplata
juanlaplata juanlaplata is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Plata, Bs. As. (Argentina)
Posts: 212
Poder: 18
juanlaplata Va por buen camino
en "MI" aplicacion decido como se veran los numeros, por eso al final de la unit principal le agrego
Código Delphi [-]
initialization
  sysutils.Decimalseparator := '.';      {Separador decimal}
  sysutils.ThousandSeparator := ',';   {Separador de miles}
end.
Fuente: este club.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Leer un fichero csv con campos separados por puntos y comas. pablo73 Varios 5 19-03-2020 10:47:51
comas por puntos pruz API de Windows 4 05-07-2005 23:59:24
Comas o Puntos pruz Varios 1 13-08-2004 21:18:42
Problemas con puntos y comas... Access delphicano Varios 2 30-12-2003 16:07:54
comas decimales por puntos Carmelo8 Varios 5 28-11-2003 02:45:23


La franja horaria es GMT +2. Ahora son las 01:49:23.


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