En alguna oportunidad un colega me solicito un ejemplo de cómo ocultar un tab desde un PageFrame y le hice el siguiente ejemplo:
En realidad no existe una propiedad dentro del Page que pueda ocultarlo sino más bien en el ejemplo lo que se hace es
Agregar y/o Quitar los pages desde el mismo PageFrame haciendo uso de ADDOBJECT / REMOVEOBJECT.
Además se debe cambiar la forma tradicional de diseñar las Pages ya que para poder realizar el efecto se deben agregar las Pages en una clase (la del ejemplo PAGETEMPLATES.VCX puede servir) VCX y llamarlas desde el control PAGEFRAME.
|
Imagen 1 - Clase PageTemplates.Vcx |
Como se puede observar en la imagen 1, debemos crear nuetras páginas basadas en la clase page para que puedan ser incluidas en el pageframe en tiempo de ejecución. Veamos paso a paso como crear un page:
Paso 1 - Crea una nueva clase basada en un Page.
|
Imagen 2 - Crear una Página basada en la clase Page |
Paso 2 - Agregar controles al Page
|
Imagen 3 - Agregando controles al Page |
Paso 3 - Agregar / Ocultar el Page
|
Imagen 4 - Agregando el Page5 al PageFrame | | | | | | | | | | | | | | |
|
|
|
Imagen 5 - Agregar / Ocultar Page |
Métodos addPage() / removePage()
Dentro del formulario se encuentran dos métodos que se encargan de agregar y remover las pages del pageFrame.
|
Imagen 6 - Método addPage() |
Los parámetros del método addPage() son los siguientes:
- tcPageCaption = Descripción o nombre a mostrar del Page
- tcPageName = Nombre del Page (No es el nombre de la clase sino el name del page)
- tcPageClass = Nombre de la clase (samplePage5 para nuestro ejemplo)
- tnPageOrder = Número de órden del page.
|
Imagen 7 - Método removePage() |
El método removePage() recibe como parámetro el nombre del page asociado al pageFrame.
https://github.com/Irwin1985/VFPHideTab