Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

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.243
Poder: 22
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: Dec 2004
Ubicación: Alcobendas, Madrid, España
Posts: 12.611
Poder: 27
dec Va camino a la famadec Va camino a la fama
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.davidesperalta.com
Responder Con Cita
  #4  
Antiguo 16-01-2008
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: Jan 2005
Ubicación: Galicia
Posts: 595
Poder: 14
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: Jan 2005
Ubicación: Galicia
Posts: 595
Poder: 14
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: 135
Poder: 14
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: Jan 2005
Ubicación: Galicia
Posts: 595
Poder: 14
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: Jan 2007
Ubicación: La Plata, Bs. As. (Argentina)
Posts: 212
Poder: 12
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


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
comas por puntos pruz API de Windows 4 05-07-2005 22:59:24
Comas o Puntos pruz Varios 1 13-08-2004 20:18:42
Leer un fichero csv con campos separados por puntos y comas. pablo73 Varios 2 24-05-2004 14:12:32
Problemas con puntos y comas... Access delphicano Varios 2 30-12-2003 15:07:54
comas decimales por puntos Carmelo8 Varios 5 28-11-2003 01:45:23


La franja horaria es GMT +2. Ahora son las 03:07:51.


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