Pasar Un Contenedor A Un Procedimiento. Clase Container


Objetivo: Pasar Un Contenedor A Un Procedimiento. Clase Container
Buenas!.

Me gustaría preguntaros si es posible pasar a un procedimiento un tipo de contenedor variable, que se encargará de mostrar en el formulario.

Imaginar que tengo un formulario y una vez quiero crear un Hbox y otra vez quiero crear un VBox.
¿ Qué tipo de clase debo poner como argumento al procedimiento ?.

No me parece que funcione el contenedor organizador como debiese.
Ya sabemos que el propio formulario es un contenedor de controles.
Os muestro el código.

Public Sub Form_Open()

Dim unhbox As HBox
Dim unvbox As VBox

'Esto hace que funcione y no por el tipo de contenedor organizador
Me.Arrangement = Arrange.Horizontal
Me.Margin = True
Me.Spacing = True
Me.AutoResize = True

'Quiero pasar uno u otro
CrearContenedor(unhbox)
'Luego le paso los dos tipos
' CrearContenedor(unvbox)

End

Public Sub CrearContenedor(untipodecontenedor As Container)
'El procedimiento debe aceptar cualquiera de los dos

Dim nomimagenes As New String[]
Dim unpicturebox As PictureBox
Dim i As Integer

'Parece que no puedo instanciar la clase contenedora
untipodecontenedor = Container(Me)

nomimagenes = Dir(Application.Path, "*.gif", gb.file)

For i = 0 To nomimagenes.Max
unpicturebox = New PictureBox(untipodecontenedor)
With unpicturebox
.Picture = Picture.Load(Application.Path &/ nomimagenes[i])
.W = 256
.h = 192
.Border = Border.Solid
End With
Next

End


De por si solo, el organizador hubiera mostrado las dos imágenes una al lado de la otra, ya que le paso un hbox al procedimiento.
Quedando las imágenes así: ( Tan solo es un único organizador).

ejemplo1_1557575071_653429

Ahora fijaros que le paso primero un hbox y luego un vbox....pero parece que lo que manda es la distribución del contenedor padre. El formulario.

ejemplo2_1557575312_696527

Si el Vbox creado esta al lado del Hbox y la alineación del formulario es horizontal. ¿ No debería al menos el vbox haber mostrado las imágenes una debajo de la otra ?

Saludos

Objetivo: Re: Pasar Un Contenedor A Un Procedimiento. Clase Container
Shell escribió: [Ver mensaje]

'Parece que no puedo instanciar la clase contenedora
untipodecontenedor = Container(Me)



Porqué quieres instanciar la variable untipodecontenedor ?
Ella ya contiene el objeto de tipo Container.

Perfil MP  
Objetivo: Re: Pasar Un Contenedor A Un Procedimiento. Clase Container
Vuott:

Citar:

Porqué quieres instanciar la variable un tipo de contenedor ?


Por que quiero decirle en que contenedor padre debe estar.

Saludos

Objetivo: Re: Pasar Un Contenedor A Un Procedimiento. Clase Container

última edición por vuott el Sabado, 11 May 2019, 18:49; editado 2 veces
Perfil MP  
Objetivo: Re: Pasar Un Contenedor A Un Procedimiento. Clase Container
Ni uno ni otro. Usa Object o variant.

Perfil MP  
Objetivo: Re: Pasar Un Contenedor A Un Procedimiento. Clase Container
Vuott:

Imagina tener el mismo código para hacer algo y solo quieres cambiar el contenedor donde se va hacer esa función.

Si tu sabes que vas a usar dos imágenes ( por decir algo ) y las quieres ordenadas una al lado de la otra, usarás un componente Hbox,
en cambio si quieres apilarlas, usaras un VBox, tu san solo le dices a la función que tipo de organizador quieres que se haga,
la función hace otras cosas más.

Shordi:

Citar:

Ni uno ni otro. Usa Object o variant.


Ok, probaré tu idea.

Saludos


Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.3762s (PHP: -77% SQL: 177%)
Consultas SQL: 46 - Debug off - GZIP Activado