Visual Basic - Dos Preguntas Sencillas

Life is soft - evento anual de software empresarial
 
Vista:

Dos Preguntas Sencillas

Publicado por Sebastian (12 intervenciones) el 26/06/2003 21:18:46
Hola Amigos: Necesito ayuda en dos problemitas

1.- Problema: Tengo un TextBox Ligado a una BD en un campo Número con decimales
lo que necesito que haga es, que al presionar la tecla punto (.) del teclado numerico
me aparezca una coma, estuve utilizando el siguiente codigo para este problemita
pero cuando lo utilizo me pone (.,) osea lo que necesito es eliminar el punto antes
de la coma... aclaro que la configuracion regional de la pc esta correctamente configurada.

Private Sub TxtPrecio_KeyPress(KeyAscii As Integer)

If KeyAscii = 46 Then

SendKeys ","

End If

End Sub

2.- Lo que necesito es que cuando el TextBox reciba el enfoque me seleccione el contenido del
mismo.

Desde ya muchas gracias....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Dos Preguntas Sencillas

Publicado por Cecilia Colalongo (3116 intervenciones) el 26/06/2003 21:42:49
Para la primera pregunta cambia el código del SendKeys por KeyAscii = 44.

Para el segundo revisa las propiedades SelText, SelStart y SelLength que tienen un ejemplo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dos Preguntas Sencillas

Publicado por Pere (150 intervenciones) el 26/06/2003 21:46:25
1º- Lo has de hacer desde el evento Change()
Private Sub TxtPrecio_Change()
TxtPrecio.text = Val(BuscaCambia(TxtPrecio.text, ".", ",", 0))
End Sub

Public Function BuscaCambia(ByVal VarString As String, ByVal cadena1 As String, _
ByVal cadena2 As String, ByVal ParaYa As Integer) As String
Dim I%, CarFinal%, PosActual%, PosSiguiente%, PosFinal%, VarAuxiliar$
If ParaYa > 0 Then
CarFinal = ParaYa
Else
CarFinal = Len(VarString)
End If
VarAuxiliar = VarString
PosSiguiente = 0
PosSiguiente = InStr(PosSiguiente + 1, VarAuxiliar, cadena1)
Do Until (PosSiguiente = 0) Or (PosSiguiente > CarFinal)
VarAuxiliar = left(VarAuxiliar, PosSiguiente - 1) & cadena2 & _
Right(VarAuxiliar, (Len(VarAuxiliar) - Len(cadena1) - (PosSiguiente - 1)))
CarFinal = CarFinal - Len(cadena1) + Len(cadena2)
PosSiguiente = 0
PosSiguiente = InStr(PosSiguiente + 1, VarAuxiliar, cadena1)
Loop
BuscaCambia = VarAuxiliar
End Function

Espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dos Preguntas Sencillas

Publicado por kikecg (352 intervenciones) el 26/06/2003 22:02:06
Hola.
Que complicado y retorcido, Pere. Con lo bien que funciona, como comentaba Cecilia, el evento KeyPress.
Le pones KeyAscii = 44 y listos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dos Preguntas Sencillas

Publicado por Pere (150 intervenciones) el 27/06/2003 01:31:45
Es una funcion de propósito general, puede cambiar cualquier valor por otro. Esa era la intención.
Retorcida, pues sí, pero bueno, la uso para cosas más complicadas.
acepto el "tirón de orejas".

Saludos
Pere
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dos Preguntas Sencillas

Publicado por kikecg (352 intervenciones) el 27/06/2003 20:56:53
Hombre... tampoco era un tirón de orejas, vaya, Era mas bien un... ¡ostras pedrín!. Pero oye, que si funciona todo vale, ¿o no?.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dos Preguntas Sencillas

Publicado por Pere (150 intervenciones) el 27/06/2003 21:32:24
No te preocupes, las cosas dichas con arte siempre son bien recibidas.

Puse la función porque el uso de Sendkeys causa, con frecuencia, problemas con el teclado numérico (se deshabilita la tecla "Bloq Num". Lo curioso es que no sucede en todos los Pc's, sólo en algunos e imagínate el estar metiendo números a troche y moche sin mirar la caja de texto. Cuando te das cuenta, no veas la gracia que te hace.

Para deplegar automáticamente un Combo cuando recibe el enfoque si pones SendKeys "%{down}" o SendKeys "{F4}", True te hace lo que he comentado anteriormente.

Saludos.
Pere
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias Pere, Cecilia y kikecg

Publicado por Sebastian (12 intervenciones) el 27/06/2003 02:00:42
Les agradezco a todos Per
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar