Domingo 22 de Diciembre de 2024, 20:42
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Formato de textos bloqueados en vb6.0
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Formato de textos bloqueados en vb6.0 (Leído 1219 veces)
javiergarciaperez
Nuevo Miembro
Mensajes: 5
Formato de textos bloqueados en vb6.0
«
en:
Jueves 7 de Agosto de 2008, 19:55 »
0
Hola
Tengo esta operación:
Código: Text
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: Text
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 = ".", 44, 46)
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úmeros, signo negativo, punto, coma y retroceso
keyascii = 0
Exit Sub
' comprueba que el signo menos esté sólo al principio
' Nota: Si no queremos negativos, quitar 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.
Tweet
cpmario
Miembro HIPER activo
Mensajes: 629
Re: Formato de textos bloqueados en vb6.0
«
Respuesta #1 en:
Jueves 7 de Agosto de 2008, 23:13 »
0
Si las operaciones que estás tratando de hacer deben de corresponder a la Configuración Regional del Sistema.
Entonces tienes un error en el código KeyPress de los controles TextBox.
Debe ser así:
Código: Text
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 numérico del sistema
If sCar <> sDecimal Then
KeyAscii = Asc(sDecimal)
End If
sCar = Chr(KeyAscii)
' si ya se ha puesto un punto o coma 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úmeros, signo negativo, punto, coma y retroceso
KeyAscii = 0
Exit Sub
' comprueba que el signo menos esté sólo al principio
' Nota: Si no queremos negativos, quitar esta condición
ElseIf sCar = "-" Then
If InStr(2, "-", Text1) = 0 Then
KeyAscii = 0
End If
End If
End Sub
De otra manera las operaciones que realices tendrán error.
Si lo anterior no es el problema entonces trata con esto en la línea que dices:
Código: Text
Text7(0) = Format(((Val(Text13) * Val(Text1) * Val(Text1)) / 8) + ((Val(Text22) * Val(Text1) * Val(Text1)) / 8) + ((Val(Text31) * Val(Text1) * Val(Text1)) / 8), "###########.00")
javiergarciaperez
Nuevo Miembro
Mensajes: 5
Re: Formato de textos bloqueados en vb6.0
«
Respuesta #2 en:
Sábado 16 de Agosto de 2008, 12:35 »
0
Vale gracias. Ya me ha funcionado.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Formato de textos bloqueados en vb6.0