Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Formato de números en VB6.0.

Estas en el tema de Formato de números en VB6.0. en el foro de Visual Basic clásico en Foros del Web. Hola. Estoy haciendo un programa en el que hay dos textbox. Dependiendo de los valores que haya en esos textbox aparece una imagen u otra: ...
  #1 (permalink)  
Antiguo 03/08/2008, 11:10
 
Fecha de Ingreso: julio-2008
Mensajes: 36
Antigüedad: 15 años, 9 meses
Puntos: 0
Formato de números en VB6.0.

Hola.
Estoy haciendo un programa en el que hay dos textbox. Dependiendo de los valores que haya en esos textbox aparece una imagen u otra:

caso 1º) si el textbox1<((textbox2)/2) entonces se ve la imagen 1
caso 2º) si el textbox1=textbox2 entonces se ve la imagen 2
caso 3º) si el textbox1>((textbox2)/2) entonces se ve la imagen 3

El problema que tengo es que mientras el número del textbox1 sea menor que 10 funciona correctamente, pero si es mayor de 10 solo funciona para los dos primeros casos.
¿Me podéis ayudar?
Muchas gracias.

Os mando el código, por si sirve de algo:
Código PHP:
            If Text1 Or Text1 Text2 Then
            Picture71
(0).Visible True
            Picture80
(0).Visible True
            End 
If
            If 
Text1 < ((Text2) / 2) And Text1 0 Then
            Picture71
(20).Visible True
            Picture80
(5).Visible True
            End 
If
            If 
Text1 = ((Text2) / 2Then
            Picture71
(16).Visible True
            Picture80
(4).Visible True
            End 
If
            If 
Text1 > ((Text2) / 2) And Text1 Text2 Then
            Picture71
(24).Visible True
            Picture80
(6).Visible True
            End 
If 
Y este es el código de los textos para que solo se puedan meter números:
Código PHP:
Option Explicit

Dim sDecimal 
As String

Private Sub Text1_KeyPress(KeyAscii As Integer)
    
Dim sCar As String 1
    sCar 
Chr(KeyAscii)
    
    If 
sCar "." Or sCar "," Then
        
' comprueba si se ha pulsado coma o punto y lo convierte al
        ' 
formato del sistema
        KeyAscii 
IIf(sDecimal ","4446)
        
sCar Chr(KeyAscii)
        
' si ya se ha puesto un punto decimal, no admite otro
        If (InStr(Text1, sCar) > 0) Then
             KeyAscii = 0
             Exit Sub
        End If
    ElseIf InStr("0123456789.," & Chr(8), sCar) = 0 Then
        ' 
sólo admite númerossigno negativopuntocoma y retroceso
        KeyAscii 
0
        
Exit Sub
        
' comprueba que el signo menos esté sólo al principio
        ' 
NotaSi no queremos negativosquitar esta condición
    
ElseIf sCar "-" Then
        
If InStr(2"-"Text1) = 0 Then
             KeyAscii 
0
        End 
If
    
End If
End Sub 
  #2 (permalink)  
Antiguo 03/08/2008, 12:05
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Formato de números en VB6.0.

Prueba anteponiendo al valor de los TextBox la función Val, así:

If Val(Text1) > (Val(Text2) / 2) And Val(Text1) < Val(Text2) Then

  #3 (permalink)  
Antiguo 03/08/2008, 12:36
 
Fecha de Ingreso: julio-2008
Mensajes: 36
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Formato de números en VB6.0.

Gracias por responder. De esta manera sí funciona, lo que pasa es que se produce otro fallo, porque si pongo "val" delante del texto no me lee los decimales, es decir, si por ejemplo el text1=9 y el text2=4.5, me interpreta el código para que aparezca la imagen como si el text2 fuera igual a 4.
Si sabes cómo lo puedo solucionar dímelo, por favor. De todas maneras, gracias por responder.
  #4 (permalink)  
Antiguo 03/08/2008, 14:10
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Formato de números en VB6.0.

Cita:
Iniciado por javiergarciaperez Ver Mensaje
Gracias por responder. De esta manera sí funciona, lo que pasa es que se produce otro fallo, porque si pongo "val" delante del texto no me lee los decimales, es decir, si por ejemplo el text1=9 y el text2=4.5, me interpreta el código para que aparezca la imagen como si el text2 fuera igual a 4.
Si sabes cómo lo puedo solucionar dímelo, por favor. De todas maneras, gracias por responder.
Pues si estás trabajamdo con decimales, sustituye la función Val por CDbl.

Y por cierto, en el código que pones en el KeyAscii del TextBox, le falta algo y es cargar la variable "sDecimal" para que compruebe el formato del sistema
Creo recordar que ése código lo puse en otro foro y empezaba así:

Código:
Dim sDecimal As String
Private Sub Form_Load()   
    ' comprueba el formato numérico del sistema
     sDecimal = Format(0.1, "#.#")
     sDecimal = IIf(InStr(sDecimal, ","), ",", ".")
End Sub
y a continuación el código en el evento KeyPress del TextBox tal y como lo has puesto.

  #5 (permalink)  
Antiguo 03/08/2008, 15:13
 
Fecha de Ingreso: julio-2008
Mensajes: 36
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Formato de números en VB6.0.

Sí, le faltaba eso, que se me ha olvidado ponerlo en el mensaje (probablemente sea de un mensaje tuyo, porque creo que ese código lo saqué de este foro). Gracias.
También he encontrado otra solución, con lo me dijiste antes de utilizar "val". He puesto en todos lados los textbox la función "val", pero si ponía decimales con el código del textbox del keypress no me funcionaba(4,5 me lo leía como 4) porque según eso me ponía los decimales con la coma(que supongo que será el símbolo que trae mi ordenador para los decimales por defecto), pero he cambiado ese código para que siempre el decimal sea con un punto, y así la función val lo lee correctamente.
De todas maneras probaré también tu solución.
Muchas gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:39.