Paso por parametros

Johanna Almarza
25 de Noviembre del 2005
Quisiera hacer una funcion pasando por parametros un componente, como puedo hacer esto,,,, Por ejemplo en todas las cajas de texto de mi programa yo solo permito que se escriba en mayuscula por lo que repito varias lineas de codigo que podria convertir en una funcion si supiera como pasar un componente como parametro.... lea detenido lo siguiente
***********************************************
Function Cambiar(aqui que reciba el componente con el que estoy trabajando)
Dim I As Integer
el componente que recibio la funcion.Text = UCase(el componente que recibio la funcion.Text)
I = Len(el componente que recibio la funcion.Text)
el componente que recibio la funcion.SelStart = I

End Function

Private Sub TxtBoxTexto_Change()
Cambiar(enviarle a la funcion el componente TxtBoxTexto)
End Sub

kipied
25 de Noviembre del 2005
Espero entender: Quieres una función que convierta diversos textbox a mayuscula diciendole cual es el control?
Function CambiarMay (txt as TextBox) 'Aquí le dices que los pasarás es un TextBox
txt.text=Ucase(txt.text)
end function

En cada textbox llamas la función (ya sea en Change si quieres que el cambio sea automático, o al salir del control). si tienes los text creados como matrix es más fácil:
Private Sub txtDato_Change(Index As Integer)
CambiaMay txtdato(index)
End Sub



kipied
25 de Noviembre del 2005
SE Entendió??

Johanna Almarza
25 de Noviembre del 2005
No, no lo tengo como una matriz....
te muestro un poco de mi codigo, donde repito varias veces las mismas instrucciones, y es lo que quiero eliminar haciendo la funcion....
************************************************************
Private Sub TxtBoxPlataforma_Change()
Dim I As Integer
TxtBoxPlataforma.Text = UCase(TxtBoxPlataforma.Text)
I = Len(TxtBoxPlataforma.Text)
TxtBoxPlataforma.SelStart = I
End Sub

Private Sub TxtBoxPozo_Change()
Dim I As Integer
TxtBoxPozo.Text = UCase(TxtBoxPozo.Text)
I = Len(TxtBoxPozo.Text)
TxtBoxPozo.SelStart = I
End Sub
Private Sub TxtBoxFechaInicio_Change()
Dim I As Integer
TxtBoxFechaInicio.Text = UCase(TxtBoxFechaInicio.Text)
I = Len(TxtBoxFechaInicio.Text)
TxtBoxFechaInicio.SelStart = I
End Sub
*****************************************************
como le diria a mis procedimientos que pasen el componente TxtBox a la funcion que crearia sin tener matriz
Ayudameeeeeeeeeeeeeeeeeeeee

kipied
25 de Noviembre del 2005
Debes crear una función, por ejemplo CambiarMay, a esta function les puedes pasar cualquier parámetro, incluso un objeto o componente, en este caso un textbox. Para esto usas el AS TEXTBOX. El nombre de la variable (o del componente en tu caso ) se lo das tú:

Private function CambiarMay (txtMio as TextBox)
txtMio.text=ucase(txtMio.text)
end function

Ahora, en el _Change de cada uno de tus TextBox debes sólo llamar la función CambiarMay y pasar como parámetro el propio TextBox.

Private Sub TxtBoxPlataforma_Change
cambiarMay txtboxPlataforma
end sub

¿OK?

Espero que te sirva.