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

Formato de textos bloqueados

Estas en el tema de Formato de textos bloqueados en el foro de Visual Basic clásico en Foros del Web. Hola. Estoy haciendo un programa en el que meto números en un varios textbox y pulsando un botón me aparece un resultado de unas operaciones ...
  #1 (permalink)  
Antiguo 07/08/2008, 08:16
 
Fecha de Ingreso: julio-2008
Mensajes: 36
Antigüedad: 15 años, 8 meses
Puntos: 0
Formato de textos bloqueados

Hola. Estoy haciendo un programa en el que meto números en un varios textbox y pulsando un botón me aparece un resultado de unas operaciones en otros textbox(es una matriz) que he puesto su propiedad locked en true para que no se pueda modificar el resultado de esa cuenta. Los primeros textbox tienen un formato para que solo se puedan meter números y el decimal es el punto. El problema es que al operar el resultado tiene otro formato distinto al de los textbox en los que introduzco datos.
¿Cómo puedo hacer para que los textbox de resultados tengan el mismo formato que los de entrada de datos?
El formato para los textbox de entrada de datos lo he puestos con el código siguiente, lo que pasa que es de keypress, por lo que en los textbox de salida no lo puedo hacer no?:

Código PHP:
Option Explicit
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

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 a punto
        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 
Gracias. Un saludo.
  #2 (permalink)  
Antiguo 07/08/2008, 08:44
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 17 años, 5 meses
Puntos: 6
Respuesta: Formato de textos bloqueados

No te funciona dando el formato al texto asi:
Código:
TuTextbox.Text = Format(TuCampo,"#,##0.00#)
No se si es lo que necesites si no pues tu me lo vas a decir.
  #3 (permalink)  
Antiguo 07/08/2008, 09:55
 
Fecha de Ingreso: julio-2008
Mensajes: 36
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Formato de textos bloqueados

Pero esto que dices dónde lo debo poner, en que control? es decir, en texboxresultado_change?
Gracias
  #4 (permalink)  
Antiguo 07/08/2008, 10:46
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 17 años, 5 meses
Puntos: 6
Respuesta: Formato de textos bloqueados

En el LostFocus para la hora que pierda el foco te de ese formato.
  #5 (permalink)  
Antiguo 07/08/2008, 11:40
 
Fecha de Ingreso: julio-2008
Mensajes: 36
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Formato de textos bloqueados

Me voy a explicar mejor, porque creo que no me he explicado bien.
Tengo esta operación:
Código PHP:
Private Sub Command1_Click()
Text7(0) = ((Val(Text13) * Val(Text1) * Val(Text1)) / 8) + ((Val(Text22) * Val(Text1) * Val(Text1)) / 8) + ((Val(Text31) * Val(Text1) * Val(Text1)) / 8)
End Sub 
y en los textbox text13, text1, text22 y text31 le he puesto el siguiente código:
Código PHP:
Option Explicit
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

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 a punto
        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 
Con este código solo puedo introducir en los textbox text13, text1, text22 y text31 números, el símbolo -, y el punto (".") como separador de decimales.
El problema que hay es que el resultado de la operación en el text7(0) me sale con separación de decimales la coma (","), y necesito que sea el punto para poder seguir operando con el text7(0), que está bloqueado para que no se pueda escribir sobre él, solo puede aparecer el resultado de la operación anterior.
¿Me podéis ayudar?
Gracias.
  #6 (permalink)  
Antiguo 07/08/2008, 11:46
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Formato de textos bloqueados

Usa Replace:
Código PHP:
Text7(0) = Replace(Text7(0), ",""."
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 07/08/2008, 12:02
 
Fecha de Ingreso: julio-2008
Mensajes: 36
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Formato de textos bloqueados

Gracias por responder.
Esto que me has dicho sí funciona, cambia la coma por el punto, lo que pasa que si sigo operando con el text7(0) no utiliza los decimales, es como si siguiera puesta la coma para los decimales, es decir, si el resultado de text7(0)=9.375 al seguir operando me utiliza 9.
Para seguir operando con el text7(0) utilizo la función val.
Ayuda por favor.
Gracias.
  #8 (permalink)  
Antiguo 07/08/2008, 12:04
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Formato de textos bloqueados

Ejecuta paso a paso y mira qué valor te está devolviendo el Val().

¿Cuál es el código que utilizas para la suma?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 07/08/2008, 12:06
 
Fecha de Ingreso: julio-2008
Mensajes: 36
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Formato de textos bloqueados

Ya lo he conseguido.
He puesto lo que me dijiste pero en el código justo después del código:
Código PHP:
Text7(0) = ((Val(Text13) * Val(Text1) * Val(Text1)) / 8) + ((Val(Text22) * Val(Text1) * Val(Text1)) / 8) + ((Val(Text31) * Val(Text1) * Val(Text1)) / 8
y me funciona a la perfección, he podido seguir operando correctamente.
La primera vez lo había puesto al final del código.
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 13:12.