Autor Tema: Metodo Millar en TextBox  (Leído 5828 veces)

0 Usuarios y 1 Visitante están viendo este tema.

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Metodo Millar en TextBox
« en: Agosto 27, 2011, 08:38:11 pm »
Como hacen ustedes para formatear en un textbox al escribir un numero.

Private Sub Text1_Change()
   
    Text1.Text = Format(Text1.Text, "##,###")
    Text1.SelStart = Len(Text1.Text)
       
End Sub

Este método me funciona bien, pero el problema si queres cambiar 2 dígitos ya te vuelve a llevar a la ultima posición. Se que con el MaskedBox se puede pero no quiero usar este control
« última modificación: Agosto 27, 2011, 08:51:24 pm por E N T E R »
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Metodo Millar en TextBox
« Respuesta #1 en: Agosto 27, 2011, 09:01:34 pm »
¿como cambiar dos dígitos?
¿donde quieres posicionarte?

Me encuentras en YAcosta.com

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Metodo Millar en TextBox
« Respuesta #2 en: Agosto 27, 2011, 09:18:41 pm »
Por ejemplo si tenes 1.500.000 y queres cambiar asi 1.510.000 al cambiar a 1 pasa el cursor a la ultima posición.
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Metodo Millar en TextBox
« Respuesta #3 en: Agosto 27, 2011, 09:23:28 pm »
Es que has puesto en Change el código

Text1.SelStart = Len(Text1.Text)

debes ponerlo en GotFocus
Me encuentras en YAcosta.com

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Metodo Millar en TextBox
« Respuesta #4 en: Agosto 27, 2011, 09:34:38 pm »
claro, pero si lo pongo en focus solo va a funcionar cuando tiene el foco. lo que quiero es mientras voy escribiendo que ya tenga el punto.
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Metodo Millar en TextBox
« Respuesta #5 en: Agosto 27, 2011, 09:45:58 pm »
Escribí rápido y puse gotfocus cuando quise decir lostfocus.

Ahora, tu quieres mientras escriba...mmmm, nunca necesite algo asi. nose, a ver voy a probar un par de cosas
Me encuentras en YAcosta.com

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Metodo Millar en TextBox
« Respuesta #6 en: Agosto 27, 2011, 10:03:47 pm »
mmm, no pude, pensé que jugando con el enveto KeyDown y KeyUp podría lograrlo pero no se como capturar la posicion donde tuve el cursor dentro de la cadena para volver a ponerla alli.

sorry, ojala alguno de los tigres pueda.
Me encuentras en YAcosta.com

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Metodo Millar en TextBox
« Respuesta #7 en: Agosto 27, 2011, 10:06:20 pm »
aca puedo saber la posicion pero tiene un problema si probas vas a pillar donde es el problema.


Código: [Seleccionar]
        posicion = Text1.SelStart
        'Text1.Text = Left(Text1.Text, Text1.SelStart) & Right(Text1.Text, (Len(Text1.Text) - (Text1.SelStart + 1)))
        Text1.Text = Format(Text1.Text, "##,###")
        Text1.SelStart = posicion
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Metodo Millar en TextBox
« Respuesta #8 en: Agosto 27, 2011, 11:03:57 pm »
Aun no lo puedo pulir, a veces se me mueve un lugar. No se si por aqui va la cosa.
Código: [Seleccionar]
Dim pasada As Boolean
Dim posicion As Integer
Private Sub Text1_Change()
If pasada Then
   pasada = False
   If Len(Text1) > 3 Then
      Text1.SelStart = posicion + 1
   Else
      Text1.SelStart = posicion
   End If
   posicion = Text1.SelStart
Else
   pasada = True
   posicion = Text1.SelStart
   Text1.Text = Format(Text1.Text, "##,###")
   Text1.SelStart = posicion
   pasada = False
End If
End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
posicion = Text1.SelStart
End Sub

Me encuentras en YAcosta.com

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Re:Metodo Millar en TextBox
« Respuesta #9 en: Agosto 28, 2011, 01:07:00 pm »
Lo que se suele hacer Ariel en estos casos es formatear el cçodigo al salir del control o sea en el evento GostFocus y puedes realizar una validacion en el evento Validate.
En el evento Changue creo que no es lo mas correcto hacerlo.
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Metodo Millar en TextBox
« Respuesta #10 en: Agosto 28, 2011, 01:39:03 pm »
si si pero eso es lo mas funcional pero queda mas cómodo al escribir ya ves el resultado. funciona muy bien ivan el código que pasaste lo estoy probando es para adaptar al uctexbox que hiciste le hice unos cambios si quieres puedo postear después acá.

Saludos!!!
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Metodo Millar en TextBox
« Respuesta #11 en: Agosto 28, 2011, 03:40:16 pm »
chevere, pero hay que afinarlo bien, y ponerlo como propiedad para que se puede elegir si se desea o no esa funcionalidad.
Me encuentras en YAcosta.com

eligioalmuedo

  • Bytes
  • *
  • Mensajes: 16
  • Reputación: +2/-1
    • Ver Perfil
Re:Metodo Millar en TextBox
« Respuesta #12 en: Agosto 29, 2011, 07:30:22 am »
Enter......creo que esto se parece mucho a lo que pretendes.

Código: [Seleccionar]
Private Sub Text1_Change()
        posicion = Text1.SelStart
        Text1.Text = Format(Text1.Text, "##,###")
        Text1.SelStart = posicion + CuentaLetras(Text1, ".")
End Sub

Public Function CuentaLetras(frase As String, letra As String, Optional sense As Boolean = False)
   
    'Funcion creada por Acalanto
   
    On Local Error Resume Next
    If sense Then
        CuentaLetras = Len(frase) - Len(Replace(LCase(frase), LCase(letra), ""))
    Else
        CuentaLetras = Len(frase) - Len(Replace(frase, letra, ""))
    End If
End Function
El ayer es historia. El mañana es un misterio. El hoy es un regalo, y por eso le llaman presente