Cual Es La Formma De Pasar En Una Variable Un Formulario O Un Contenedor


Objetivo: Cual Es La Formma De Pasar En Una Variable Un Formulario O Un Contenedor
Hola a todos
Si deseo pasar a una clase o función un parametro que en el que me interesa pasar un contenedor como un panel , por ejemplo, o un formulario ¿Como es la forma correcta de hacerlo?
AbrirFormularioSecundario( "?" ) ' Donde "?" puede ser un Form o un panel

Luego en el "otro lado"
¿Como defino la variable? ¿Como Variant? si es así como distingo si en la variable variant hay un contenedor o un Formulario
Estoy intentando usar variant y puedo distinguir perfectamente si es un panel, pero no un Form.

Saludos.

Perfil MP  
Objetivo: Re: Cual Es La Formma De Pasar En Una Variable Un Formulario O Un Contenedor
La variable del Formulario no es buena ?

Perfil MP  
Objetivo: Re: Cual Es La Formma De Pasar En Una Variable Un Formulario O Un Contenedor
vuott escribió: [Ver mensaje]
La variable del Formulario no es buena ?

En este caso no, porque quiero poder decirle al segundo formulario que se abra en un contenedor o libremente.
Pero ya lo tengo solucionado me parece.
Saludos.

Perfil MP  
Objetivo: Re: Cual Es La Formma De Pasar En Una Variable Un Formulario O Un Contenedor
Para solucionarlo hay dos partes, o tres.
Parte 1 - Paso una variable tipo Variant donde a veces es un Form y otras un contenedor como un Panel.
SecondaryForm.Run(Panel1)

Parte 2 - Esta función me dice que objeto es
'' Función que devuelve el tipo de contenedor de acuerdo a la variable que se le pasa como parametro
Public Function ConType(vrt As Variant) As String

Dim obj As Object
Dim typ As String

If TypeOf(vrt) = 16 Then
obj = vrt
Select Object.Type(obj)
Case "Panel", "Frame", "VBox", "VPanel", "VSplit", "HBox", "HPanel", "HSplit"
typ = Object.Type(obj)
Case Else
If obj.Caption Then
If obj.FullScreen Then
typ = "Form"
Endif
Endif
End Select
Else
typ = Object.Type(obj)
Endif

Return typ

End

Parte 3 - El formulario secundario
Public Function Run(vrt As Variant)
Dim typ As String

typ = uty.ConType(vrt)

If TypeOf(vrt) = 16 Then
Select typ
Case "Panel"
Me.Show()
Me.Menus.Hide
Me.Reparent(obj, 0, 0)
Case "Form"
Return Not Me.ShowModal()
End Select
Endif
End

Saludos.

Perfil MP  

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
No 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.0935s (PHP: 0% SQL: 100%)
Consultas SQL: 20 - Debug off - GZIP Activado