Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: Lars82 en Martes 24 de Abril de 2007, 20:48
Título: Instancias De Ctl En Tiempo De Ejecución
Publicado por: Lars82 en Martes 24 de Abril de 2007, 20:48
Hola,
Estoy creando un control ocx, es decir un ctl porque usaré desde el mismo proyecto desde el que lo creo, y no encuentro la manera de crear un objeto en tiempo de ejecución.
He probado con:
(en General declaraciones) Dim a() As UserControl1
(en Public sub) ReDim a(0) ...
set a(0)=new .... -> pero el nombre de mi control no aparece.
y Load a(0) -> da el error típico de Variable de tipo object no establecida
También he intentado algo como:
Set Userctl = Controls.Add("UserControl1", "ventana")
Pero no encuentra un control llamado Usercontrol1.
Cómo lo puedo hacer? Alguna idea?
mil gracias
Título: Re: Instancias De Ctl En Tiempo De Ejecución
Publicado por: luciano2 en Miércoles 25 de Abril de 2007, 20:49
Hola
No estoy seguro, pero creo que para crearlo en tiempo de ejecución con Controls.add, el control debe estar compilado, registrado en el sistema, y tenés que saber el Id para pasarle como paraémtro al ,Add
Yo lo haria con Load, por ej.
Colocás una instancia en tu form. El mismo tiene que ser parte de un matriz, por eso agregale a la propiedad index, un 0
Código: Text
' creás uno
Load UserControl11(1)
UserControl11(1).Visible = True
UserControl11(1).Move 0, 0, 1000, 1000
' otro mas
Load UserControl11(2)
UserControl11(2).Visible = True
UserControl11(2).Move 0, 1500, 1000, 1000
saludos
Título: Re: Instancias De Ctl En Tiempo De Ejecución
Publicado por: Lars82 en Sábado 28 de Abril de 2007, 22:49
Tenías razón, con un load teniente el control en el form funciona