• Domingo 19 de Mayo de 2024, 08:41

Autor Tema:  Cambiar El Punto Por La Coma En Visual  (Leído 11620 veces)

avaguin

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Cambiar El Punto Por La Coma En Visual
« en: Sábado 11 de Septiembre de 2004, 13:52 »
0
Hola a todos y todas. Este es mi primer post en este foro y después de pasarme un par de horas leyendo muchos mensajes, solo tengo que decir que es el mejor foro que he encontrado, sobretodo por la cantidad de respuestas que dais a las diferentes dudas. Muchas gracias de antemano.

Bueno mi primera duda que os quería plantear es la siguiente:

Estoy haciendo una aplicación en VB6 y en ciertos campos necesito poner números decimales. Mi problema es que me gusta trabajar con el teclado númerico y para poner los decimales no puedo usar la tecla del punto de la parte numérica, ya que visual lo coge como separador de miles. Hay alguna función que al pulsar dicha tecla me lo convierta en la coma para que entienda que es un decimal. No se si me habré explicado bien pero espero que entendais mi duda. Muchas gracias de antemano.

Nota: Siento repetir el mismo mensaje que en el foro VBA pero me confuncí de foro al principio.

Jose Arriagada

  • Miembro MUY activo
  • ***
  • Mensajes: 373
    • Ver Perfil
Re: Cambiar El Punto Por La Coma En Visual
« Respuesta #1 en: Sábado 11 de Septiembre de 2004, 14:57 »
0
Facil:

Crea una funcion que capture tu numero, lo transforme a string, que ubique el punto y lo cambie por coma y devuelva el valor ahora convertido en decimal.

Public Function ConvDecimal(ByVal sNumero As String) As Double
posicion = InStr(sNumero, ".")
If posicion > 0 Then
    Mid(sNumero, posicion, 1) = ","
End If
ConvDecimal = CDbl(sNumero)
End Function

cpmario

  • Miembro HIPER activo
  • ****
  • Mensajes: 629
    • Ver Perfil
    • http://www.cpimario.com
Re: Cambiar El Punto Por La Coma En Visual
« Respuesta #2 en: Sábado 11 de Septiembre de 2004, 18:00 »
0
Revisa la Configuración Regional de tu computadora en el Panel de Control, ya que si tienes una configuración como en España, la separación de los miles es con punto y la decimal con la coma. En cambio la configuración regional de México la separación de los miles es con la coma y los decimales con punto.
 :)

Juanolo

  • Miembro MUY activo
  • ***
  • Mensajes: 202
    • Ver Perfil
Re: Cambiar El Punto Por La Coma En Visual
« Respuesta #3 en: Lunes 13 de Septiembre de 2004, 16:38 »
0
Hola, avaguin. Bienvenido!

El consejo de José es lo que esperas. Pero creo que puedo aportar un poco.
El problema de hacerlo así, es que queda "fija" la restricción que cambia el "." por ",". Eso te dará error cuando corras la aplicación en una máquina en la que efectivamente el 'punto' sea el separador de decimales.

¿Solución?
 Creas una variable global (en algún modulo), a la que llamaremos sDec, que es del tipo string y guardará el separador decimal del sistema.

Código: Text
  1. Global sDec as String
  2.  

Luego, en el formulario principal, (en el evento form_load, por ejemplo) te encargas de averiguar cual es el separador decimal de la máquina y lo guardas en la variable. Para ello, dividiremos 10 en 3, y presentaremos el resultado en formato decimal. Eso dará "3.33" ó "3,33" dependiendo de la configuración del sistema, lo que nos permitirá descubrir el formato usado.

Código: Text
  1.  
  2.     'Detectar caracter decimal
  3.     stmp = Format$(10 / 3, "##.00")
  4.     If InStr(stmp, ".") Then
  5.         SdeC = "."
  6.     ElseIf InStr(stmp, ",") Then
  7.         SdeC = ","
  8.     End If
  9.   
  10.  

Esta variable la podrás llamar, luego, desde cualquier lugar en la aplicación.


Luego, cuando y donde quieras aplicar el cambio, introduces el siguiente código. En el ejemplo, es un cuadro de texto llamado text1.

Código: Text
  1. Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
  2.         Select Case KeyAscii
  3.         Case Asc("."), Asc(",")
  4.             KeyAscii = Asc(SdeC)
  5.         End Select
  6. end sub
  7.  

Si te fijas, no importa cual sea la configuración del sistema, ni de si tu presionas ',' o '.', siempre te dará el caracter decimal válido.

Espero te ayude.

Salu2. :hola:
La luz que sólo se ilumina a sí misma, es oscuridad.