SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: Egala en Jueves 10 de Abril de 2003, 11:18
-
Hola a todos:
A ver si alguien me puede ayudar, necsito pasar por parametro una matriz de controles a un procedimiento o funcion.
Alguien sabe como?
Gracias
Egala
-
Egala
podrias detallar más tu pregunta por favor
así podemos ayudarte
Gracias
Puedes escribirme a javasun666@yahoo.com.mx
Para ayudarte
metalheavy
-
Os detallo un poco mas mi problema:
En unos procedimientos o funciones tengo un textbox el cual recorro de la siguiente manera:
for i=0 to 5
textbox(i).text=i
next i
pero es un procedimiento que tengo en un Form y lo que quiero es ponerlo en un modulo aparte de tal forma que le pase por parametro el textbox, es decir:
sub Prueba(Caja as textbox)
for i=0 to 5
caja(i).text=i
next i
end sub
pero no me funciona, da error en la declaracion. Y lo que no quiero es pasar el Form como parametro, pues pasandole el form se que funciona, yo estoy interesado en saber pasar el control en concreto, siendo este una matriz de controles, como puedes ver.
Gracias
-
Yo creo, amigo Egala, que los parámetros que pretendes pasar no son Controles sino datos numétricos, contenidos en unos textbox.
Lógicamente ha de darte error si los quieres definir como textbox, cuando son 0, 1, 2, 3, 4...
¿De acuerdo?
Si lo que deseas es tener unos textbox accesibles desde cualquier formulario, define un formulario fantasma (frmTemp) con 6 controles textbox, que lo puedes tener incluso permanentemente oculto, invisible, y refiérete a él desde donde te interese con
for i = 0 to 5
frmTemp.TextBox(i).text = i
next
Y luego accedes a esos valores como mejor te vaya: x1 = frmTemp.TextBox(3).Text, por ejemplo.
Ya contarás si esto cumple tus deseos.
Saludos y suerte
-
Amigo J.M.Movilla, te agradezco la respuesta (algo se aprende), pero creo que no me explique bien en lo que yo quiero hacer. Vease un ejemplo:
Sub CargaLista(Valor as integer,Lista as ListBox)
Lista.additem Valor
End sub
La llamada desde el formulario seria:
call CargaLista(Valor, LstNuestraLista)
Bien, pues es lo mismo pero en vez de pasar una unica Lista, quiero pasar un conjunto de listas (matriz de controles), osea algo como:
Sub CargaLista(Valor as integer,Lista as ListBox,Posicion as integer)
Lista(posicion).additem Valor
End sub
La llamada desde el formulario seria:
call CargaLista(Valor, LstNuestraLista,i)
donde i es el indice de la lista en la cual quiero insertar el valor pasado.
Pero me da error
Bueno, espero que con esta explicacion puedas ayudarme
Gracias de antemano
-
He hecho varias pruebas y me ha quedado suficiente claro este concepto:
No puede pasarse un array de controles indefinido.
Tienes, sin embargo, fácil la solución:
Sub CargaLista(Valor as integer,Lista as ListBox)
Lista.Additem Valor
End sub
Y la llamada la haces así:
Call CargaLista(Valor, LstNuestraLista(i))
con lo cual no pasas el array de controles, sino el control con la posición ya definida.
Y ASI FUNCIONA PERFECTAMENTE.
Saludos
-
J.M.Movilla, te agradezco el esfuerzo y cuando uno esta obcecado no discurre bien. Me sirve eso que me dices de que no se pueden pasar matrices indefinidas, me has ahorrado mucho esfuerzo. Gracias.
Recodificare algunos procedimientos y a ver que pasa.