|
|
|
|
- Presentación
- Abrir una pestaña dinámica
- Abrir una pestaña con el botón "+"
- Abrir una pestaña utilizando la función TabOpen
- Consejo: Crear una pestaña "Menú" para permitir al usuario elegir el tipo de pestaña a crear
- Manipular una pestaña dinámica
- Cambiar la pestaña dinámica activa
- Descubrir la leyenda del panel de pestañas dinámico de Active
- Recuperación de la ventana interna mostrada en un panel
- Acceder al contenido de la ventana interna que se muestra en un panel
- Propiedades específicas de los controles de pestañas
Manejo de una ficha dinámica mediante programación (sintaxis de prefijo)
WINDEV permite manipular controles Pestaña dinámica mediante programación con las funciones TabXXX y diferentes propiedades WLanguage. También puede utilizar la control Pestaña Variable directamente en el código. Atención: Las pestañas estáticas y dinámicas no se identifican de la misma manera: - las pestañas estáticas están identificadas por el número de la pestaña activa.
- las pestañas dinámicas están identificadas por el alias de la pestaña activa.
Observación: Si la ventana interna manipulada en la pestaña dinámica utiliza archivos de datos HFSQL, también debe utilizar un contexto HFSQL independiente. Abrir una pestaña dinámica Existen varios métodos para abrir una pestaña dinámica: - mediante el botón "+" del control Pestaña. En este caso, se tienen en cuenta las opciones especificadas en la ventana de descripción del control Pestaña.
- mediante programación con la función .Open.
Abrir una pestaña con el botón "+" Para abrir una nueva pestaña con botón "+" en el control Pestaña: - En la ventana de descripción del control Pestaña, vaya a la pestaña "Detalles" y seleccione "Con botón 'Nuevo' (+)", luego seleccione la ventana interna en "Ventana interna al hacer clic en Nuevo (+)" y especifique el texto predeterminado de la nueva pestaña.
- La ventana interna que se abre con el botón "+" puede ser:
- una ventana interna específica (por ejemplo, un formulario de cliente).
Cuando el usuario haga clic en el botón "+", las nuevas pestañas serán idénticas. Se basarán en la misma ventana interna. Observación: Si la ventana interna espera parámetros, la pestaña debe abrirse con la función .Open. - ninguna ventana interna.
En este caso, la ventana interna a abrir debe especificarse mediante programación. Para ello, debe utilizar la función .Open en el evento "Creación de una pestaña" del control Pestaña (consulte el párrafo Abrir una pestaña utilizando la función TabOpen).
Observación: El botón "+" de la pestaña dinámica llama automáticamente al evento "Creación de una pestaña" del control Pestaña. Si el evento utiliza la función .Open, tendrá prioridad sobre la ventana interna especificada en la interfaz. Abrir una pestaña utilizando la función TabOpen También puede utilizar la función .Open para abrir una pestaña. Esta función puede, por ejemplo: - ser utilizada en un botón para abrir una pestaña adicional en un control Pestaña.
- ser utilizada en el evento "Creación de una pestaña" del control Pestaña.
La función .Open permite: - Obtener el alias de la pestaña. Este alias permite manipular la pestaña mediante programación. Este alias también es devuelto por las propiedades Valor y Alias.
- Especificar el texto de la pestaña.
- Especificar la ventana interna a abrir.
- Pasar parámetros a la ventana interna que se va a abrir.
Ejemplo:
Alias_Tab is string // New tab containing the form of the current customer Alias_Tab = TAB_Menu.Open("Customer "+ Customer.CustomerID, IW_CustomerForm, Customer.CustomerID) // Change the image of the tab pane TAB_Menu[Alias_Tab]..Image = "NewCust.png"
Consejo: Crear una pestaña "Menú" para permitir al usuario elegir el tipo de pestaña a crear Al hacer clic en el botón "+", puede mostrarse un menú que permita al usuario elegir el tipo de información que desea mostrar. Para crear este tipo de interfaz: - Crear una ventana interna "Menú. Esta ventana interna contiene las opciones para elegir los datos que se mostrarán en el nuevo panel de pestañas. Por ejemplo, esta ventana puede permitir al usuario mostrar un formulario de cliente, una factura o la lista de pedidos.
- En la ventana control Pestaña description, vaya a la pestaña "Detalles.
- En "Ventana interna al hacer clic en Nuevo (+)", seleccione la ventana interna "Menú".
- Validar.
En ese caso: - El usuario pulsa "+" para añadir una ficha.
- Aparece un nuevo panel de pestañas que contiene el menú (ventana interna creada anteriormente).
- En el menú, el usuario elige el tipo de panel de pestañas que desea mostrar.
- El panel de pestañas actual (el que muestra el menú) se sustituye por el panel seleccionado.
Para desarrollar este tipo de interfaz, se requieren algunas modificaciones: - En el código de clic del botón utilizado para elegir el tipo de pestaña, utilice la función <Ventana interna>.ChangeSourceWindow con la siguiente sintaxis:
ChangeSourceWindow(<Selected Internal Window>, <Replacement Internal Window>) Por ejemplo:
// Replaces the choice window with a form ChangeSourceWindow(IW_Choice, IW_Form) - Para manipular la nueva pestaña, utilice la siguiente sintaxis:
<Window>.<Tab control>[<Window>.<Tab control>] Por ejemplo, para cambiar el texto de la pestaña abierta:
WIN_DYNHAND.TAB_MDI[WIN_DYNHAND.TAB_MDI].Caption = "Form " + SysTime()
Manipular una pestaña dinámica Para manipular una pestaña dinámica, utilice la siguiente sintaxis: TabControl[TabPaneAlias].PropertyName = PropertyValue Por ejemplo: TAB_MyTab[TAB_MyTab].State = Grayed
Observaciones: - La función ControlPane obtiene el nombre de la pestaña dinámica (alias) que contiene un control específico.
// Click on "BTN_UPD" button MyPane is Control MyPane <- ControlPane(MySelf) MyPane.Caption = MyPane.Caption + " (Modified)"
- La función .Estado obtiene el estado de una pestaña dinámica: activo, flotante, inexistente.
- Para obtener los alias de las pestañas dinámicas activas, llame a la función EnumControl en el control Pestaña:
// Populate a Combo Box control with the list of controls in the window i is int = 1 ResControl is string ResControl = EnumControl(TAB_MyTab, i) WHILE ResControl <> "" i++ Trace(ResControl) ResControl = EnumControl(TAB_MyTab, i) END
Cambiar la pestaña dinámica activa De forma predeterminada, la última pestaña dinámica creada se activa. La pestaña activa puede cambiarse mediante programación. Para activar una pestaña dinámica: - Asigne a la control Pestaña el alias del tabulador dinámico a activar:
Tab control name = AliasOfTabPane - Utilice la propiedad Valor.
Recordatorio: Para activar una pestaña estática, especifique el número de la pestaña a activar. Tab control name = Pane number Descubrir la leyenda del panel de pestañas dinámico de Active Para obtener el texto de la pestaña activa, utilice la propiedad Pie de foto en la pestaña (identificada por su alias). Por ejemplo:
AliasTab1 is string = TAB_Test.TabOpen("My tab 1", "IW_InternalWindow") Trace(TAB_Test[AliasTab1].Caption)
La propiedad Pie de foto también puede utilizarse para cambiar el texto de la pestaña. Recuperación de la ventana interna mostrada en un panel Para recuperar el nombre de la ventana interna que se muestra en un panel dinámico, puede utilizar el siguiente código:
// Retrieves the displayed pane oInternalWin is Control <- TAB_Test[PaneAlias1] // Retrieves the internal window associated with the pane sInternalWindowName is string sInternalWindowName = EnumControl(oInternalWin, 1, byCreationOrder)
Acceder al contenido de la ventana interna que se muestra en un panel operadores indirectos puede utilizarse para acceder al valor de un control o Variable en la ventana interna mostrada en un panel dinámico: // Retrieves the value of a control in the internal window Info({PaneAlias1 + ".ControlName", indControl}) // Retrieves the value of a variable in the internal window Info({PaneAlias1 + ".VariableName", indVariablel}) // Call a procedure of the internal window ExecuteProcess(PaneAlias1 + ".pProcédureName", trtProcedure) // Equivalent to: MyProcedure is procedure = gsAlias_Tab + ".pProcedureName" MyProcedure()
Es preferible utilizar los procedimientos locales de una ventana para manipular sus controles, en lugar de acceder directamente a los controles y a las variables por indirección.. Esto mantiene la ventana interna autónoma y facilita el mantenimiento. Propiedades específicas de los controles de pestañas Las siguientes propiedades permiten gestionar las características de una control Pestaña Dinámica mediante programación.
| | CaptionIfNew | El CaptionIfNew Property se utiliza para get y cambiar el título de un panel abierto por el usuario final en un control Pestaña dinámico. | DynamicTab | El DynamicTab Property se utiliza para:- Averigua el tipo de control Pestaña (pestaña estática o pestaña dinámica).
- Modificar el tipo de control Pestaña (pestaña estática o pestaña dinámica).
| StoreTheConfiguration | El StoreTheConfiguration Property se utiliza para: - Determinar si la configuración de los paneles en un control Pestaña o control Cinta de opciones dinámico se guarda y restaura automáticamente.
- Modificar la configuración de los paneles en un control Pestaña o control Cinta de opciones dinámico para que se guarde y restaure automáticamente (o no)
| UndockablePane | El UnlockablePane Property se utiliza para: - Determinar si el usuario final puede mover los paneles de una cinta o control Pestaña dinámico fuera de la ventana.
- Permitir o impedir que el usuario final mueva los paneles de una cinta o control Pestaña dinámico fuera de la ventana.
| Undocked | El Undocked Property se utiliza para determinar si un panel de una Ficha o control Cinta de opciones está desacoplado. | WindowIfNew | El WindowIfNew Property se utiliza para get y cambiar el nombre de la ventana interna que se abrirá si el usuario final abre una nueva pestaña en un control Pestaña dinámico. | WithClosingButton | La propiedad WithClosingButton permite: - Determinar si todas las pestañas de un control Pestaña dinámica tienen un botón Cerrar.
- Mostrar un botón Cerrar en todas las pestañas de un control Pestaña dinámica.
| WithNewButton | La propiedad WithNewButton permite: - Determinar si un control Pestaña dinámica tiene un botón Nueva pestaña (+).
- Configurar un control Pestaña dinámica para que muestre un botón Nueva pestaña.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|