Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Pasar Un Contenedor A Un Procedimiento. Clase Container
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Gambas Básico
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Un Contenedor A Un Procedimiento. Clase Container 
 
Shell escribió:  

  '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.
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Gambas Básico
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Un Contenedor A Un Procedimiento. Clase Container 
 

 



 
última edición por vuott el Sabado, 11 May 2019, 19:49; editado 2 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Un Contenedor A Un Procedimiento. Clase Container 
 
Ni uno ni otro. Usa Object o variant.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Gambas Básico
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Clase Container shordi Controles/Librerías/Componentes 2 Domingo, 12 Diciembre 2010, 20:41 Ver último mensaje
shordi
No hay nuevos mensajes Picture En Contenedor? arkyansoul Controles/Librerías/Componentes 2 Martes, 24 May 2011, 02:17 Ver último mensaje
Invitado
No hay nuevos mensajes Sintaxis En Un Procedimiento O Función. Shell General 3 Domingo, 20 Abril 2014, 10:37 Ver último mensaje
Shell
No hay nuevos mensajes Crear Botones Por Código En Un Container desoljor Aplicaciones/Fragmentos de Código 3 Jueves, 21 Abril 2016, 19:53 Ver último mensaje
shordi
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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
No puede descargar archivos
No puede publicar eventos en el calendario