miércoles, 16 de agosto de 2017

Ocultar un TAB de un PageFrame

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:

  1. tcPageCaption = Descripción o nombre a mostrar del Page
  2. tcPageName    = Nombre del Page (No es el nombre de la clase sino el name del page)
  3. tcPageClass     = Nombre de la clase (samplePage5 para nuestro ejemplo)
  4. 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