Uso de cookies

Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continúa navegando, consideramos que acepta su uso. Para obtener más información o bien conocer cómo cambiar la configuración lea nuestra Política de cookies

Revisión a fecha de 04:08 27 may 2015; Salva (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)

Diálogos multi-página


Un diálogo puede contener más de una página (también llamadas ficha o pestaña); para crear múltiples páginas utilizamos la propiedad Página (Step).


Esta propiedad aplicada a un diálogo creará nuevas páginas y mediante el establecimiento de su valor se define cual es la actual. La misma propiedad, pero aplicada a los controles, define a qué página son asignados.


Cuando esta propiedad se establece a 0 en un diálogo, los controles son visibles en todas las páginas, independientemente del valor de la propiedad Página (Step) de los controles. Del mismo modo, si se establece a 0 para un control, éste será visible en todas las páginas del diálogo.


El valor de esta propiedad se puede establecer desde el editor de diálogos y/o desde el código Basic. El siguiente ejemplo muestra cómo asignamos el valor de la propiedad a los controles.


   oDlg = DlgCrear( "Standard", "Dialog1" )	
   oDlg.Model.Title = "Copias de seguridad de clientes"
   oDlg.Model.Step = 1
   oModel = Model(oDlg, "ImgCopiar" )
   oModel.Step = 1
   oModel = Model(oDlg, "ImgRestaurar" )
   oModel.Step = 2


Aunque se pueda realizar por código, lo más cómodo es hacerlo desde el editor de diálogos. Hemos agregado algunos controles más a nuestro diálogo. Los pasos que hemos seguido son:

1. Agregar los nuevos controles BtCopiar, BtRestaurar y FrameControl1. El diálogo mantiene su propiedad Página (Step) a 0, y los nuevos controles la heredan.
2. Seleccionar el diálogo desde su marco; ajustar su propiedad Página (Step) a 1
3. Agregar los nuevos controles ListaDst, BtAgregaTodos, BtAgregaSel, BtQuitaSel, BtQuitaTodos. Por defecto, los nuevos controles agregados heredan la propiedad del diálogo. Ajustar la propiedad Página (Step) a 1 de los controles ImgCopiar, ListaOrg y ChkDobleCopia.
4. Seleccionar el diálogo desde su marco; ajustar su propiedad Página (Step) a 2
5. Agregar los nuevos controles. Ajustar la propiedad Página (Step) a 2 de los controles ImgRestaurar, FcSeleccionar y Label2. Por defecto, los nuevos controles agregados heredan la propiedad del diálogo.


Hemos realizado también algunos ajustes en la ventana diseño para reducir el código mostrado en los ejemplos (tamaño de letra, fondo de color, valores de las listas, orden de tabulación, etc.)


Veamos el aspecto que presenta ahora:


Dialogos-basic-macro-openoffice-007.png
Diálogo con la propiedad Página (Step) establecida a 1


Dialogos-basic-macro-openoffice-008.png
Diálogo con la propiedad Página (Step) establecida a 1


Señal Nota.png

Si desde el editor de diálogos establecemos la propiedad del diálogo Página (Step) a 0 y hacemos clic en el diálogo, se muestran todos los controles. Estableciendo su propiedad al valor adecuado y haciendo clic en el diálogo se muestran sólo los controles asignados a esa página.


Los controles que mantienen el valor 0 de su propiedad Página (Step) serán visibles en todas las páginas del diálogo; hablamos de los botones Aceptar y Cancelar, Hacer copia, Restaurar copia y del control Cuadro de grupo.


En cambio, las imágenes y el resto de controles se han establecido en páginas distintas.


La página inicial se puede establecer desde el editor de diálogos o desde el código. Veamos como ha quedado nuestra subrutina Main:


Sub Main()
'--------------------------------------------------------------------------
   Dim oDlg As Object, nBoton As Integer
 
   oDlg = DlgCrear( "Standard", "Dialog1" )
   oDlg.Model.Title = "Copias de seguridad de clientes"
   oDlg.Model.Step = 1
 
   nBoton = oDlg.Execute()
   If nBoton = 1 Then MsgBox ("Se ha pulsado el botón Aceptar", 192, "Información")
   DlgCerrar oDlg
End Sub


Cambiar de página durante la ejecución

Los botones BtCopiar y BtRestaurar son los encargados de cambiar de página el diálogo. Debemos escribir una subrutina que asignada al evento Botón del ratón soltado nos permita realizar el cambio de página y los ajustes en otros controles que consideremos oportunos. Veamos el código necesario:


Sub BtCopiar_Clic( oEv )
'--------------------------------------------------------------------------
   Dim oDlg As Object, oCtrl As Object
   oDlg = oEv.Source.Context
   oDlg.Model.Step = 1
   oDlg.Model.Title = "Copias de seguridad de clientes"   
   oCtrl = Control( oDlg, "Label1" )
   oCtrl.Text = "Selecciona uno de la lista"
End Sub


Sub BtRestaurar_Clic( oEv )
'--------------------------------------------------------------------------
   Dim oDlg As Object, oCtrl As Object
   oDlg = oEv.Source.Context
   oDlg.Model.Step = 2
   oDlg.Model.Title = "Restaurar copias de seguridad de clientes"   
   oCtrl = Control( oDlg, "Label1" )
   oCtrl.Text = "Selecciona el archivo a restaurar"
End Sub


Diálogos en varios idiomas

Las propiedades de tipo texto de los controles pueden ser localizadas en multitud de idiomas a elección.


Para localizar los textos debemos mostrar la barra de herramientas Idioma desde el menú Ver > Barras de herramientas..., y seleccionando cada idioma a utilizar, definir los textos correspondiente en cada uno de los controles.


Señal Nota.png

Más información sobre localización de diálogos en


Señal aviso.png

Importante: Si se cambia el nombre a un control, las localizaciones se reinician y se pierden, por lo que es recomendable no localizar hasta que se hayan renombrado todos los controles


Señal CopyRight.png

Texto, imágenes y código bajo licencia CC BY-SA.png

Basado en el documento Getting Started with Base. Apache OpenOfficetm Database Component, de Drew Jensen Copyright 2013 liberado bajo licencia Apache Software License 2.0, que incluye material de:
  • OpenOffice.org 3.3 Getting Started Guide, Chapter 8 - Getting Started with Base, Copyright 2010 Dan Lewis, Iain Roberts, Magnus Adielsson, Jean Hollis Weber, JiHui Choi
  • OpenOffice.org 3.2 BASIC Guide · March 2010, Copyright Oracle Corp.
Modificada el 27 may 2015 04:08.   Visitas: 6427