• Domingo 22 de Diciembre de 2024, 18:16

Autor Tema:  Instancias De Ctl En Tiempo De Ejecución  (Leído 1157 veces)

Lars82

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Instancias De Ctl En Tiempo De Ejecución
« en: Martes 24 de Abril de 2007, 20:48 »
0
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

luciano2

  • Miembro activo
  • **
  • Mensajes: 71
    • Ver Perfil
    • http://www.recursosvisualbasic.com.ar/
Re: Instancias De Ctl En Tiempo De Ejecución
« Respuesta #1 en: Miércoles 25 de Abril de 2007, 20:49 »
0
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
  1.  
  2.  
  3. ' creás uno
  4. Load UserControl11(1)
  5.  
  6. UserControl11(1).Visible = True
  7. UserControl11(1).Move 0, 0, 1000, 1000
  8.  
  9.  
  10. ' otro mas
  11. Load UserControl11(2)
  12.  
  13. UserControl11(2).Visible = True
  14. UserControl11(2).Move 0, 1500, 1000, 1000
  15.  
  16.  
  17.  


saludos

Lars82

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Instancias De Ctl En Tiempo De Ejecución
« Respuesta #2 en: Sábado 28 de Abril de 2007, 22:49 »
0
Tenías razón, con un load teniente el control en el form funciona

gracias!