sábado, 1 de julio de 2023

OOo Basic. Interface.

Diálogo (a)

Un Cuadro de diálogo (Diálogo en adelante) es un formulario emergente que, a diferencia del Formulario que vimos en las [entradas anteriores], no se construye sobre el documento sino desde el IDE, aunque también de forma manual. Un Diálogo es un contendor de controles, los mismos que podemos utilizar en el Formulario.



Sus funciones son tres: facilitar la visualización de mensajes, facilitar el input y, en algunos casos, generar información output, aunque la principal es facilitar el input (1)



En esta entrada vamos a crear un Diálogo, a visualizarlo en pantalla y a aprender a acceder a él mediante código OOo Baisc.

Empezando por la creación del cuadro de diálogo, mejor que una larga explicación es la [visualización de este vídeo] que he creado para ahorrarnos la lectura de unas cuantas líneas de texto.


Después crear el Diálogo desde el IDE, y tomando como referencia el tratamiento que del tema hace Mauricio Baeza (parte de una hoja Calc), explicaré el código OOo Basic necesario para visualizar/activar un diálogo mediante código:
  • Acceso al cuadro de diálogo llamado Dialogo1 según Mauricio Baeza

Declaramos la variable oDialMau como pública (2) e iniciamos el script

Dim oDialMau As Object

Sub AccesoCuadroDialogo

 Cargamos la librería Standard en memoria

DialogLibraries.LoadLibrary( "Standard" )

Cargamos el Diálogo en memoria utilizando la función CreateUNODialog() y llamando al atributo DialogLibraries que a su vez llama al objeto biblioteca Standard y al dialogo Dialogo1 por el método getByName()

oDialMau = CreateUnoDialog( DialogLibraries.Standard.getByName("Dialogo1") )

 Mostramos el Diálogo

oDialMau.execute()

End sub

  • El segundo método (3) es muy similar, aunque presenta alguna pequeña diferencia, como se puede ver:
Creamos la variable oDialMod como pública (2) e iniciamos el script

Dim oDialMod As Object
 
Sub Mostrar_Dialogo

Accedemos a la librería Standard, que es en la que se encuentra el objeto Cuadro de diálogo
   
DialogLibraries.LoadLibrary("Standard")

Cargamos en memoria (variable oDialMod) el objeto Dialogo1 mediante la función o procedimiento CreateUNODialog() y mediante DialogLibraries aplicada a la librería Standard, que es donde se ubica nuestro diálogo

oDialMod=CreateUNODialog(DialogLibraries.Standard.Dialogo1)

Ejecutamos (la visualización de) el diálogo

oDialMod.Execute()

End Sub

 Aunque lo interesante de un cuadro de diálogo es utilizarlo como medio input, no es hasta que lo cerramos que podemos acceder a su contenido, así que, para finalizar esta entrada, conviene aprender a cerrarlo.

Para cerrar un Diálogo nada más fácil que lo que sigue, que con los cambios debidos, esto es, la sustitución de la variable objeto oDialMau por la correspondiente en la formulación alternativa (oDialModo la que corresponda), sirve para cerrar cualquier diálogo (4):

Sub Cerrar_DialMau
   oDialMau.EndExecute()
   MsgBox "Has cerrado el diálogo según Mau", 64, "Diálogo en Calc"
End Sub

Ahora te dejo enlace al documento en cuyo IDE puedes encontrar el código que hemos estado trabajando: [EjemploDialogo](5). Descárgala para trabajar con ella. contiene más script que los expuestos, pero por el momento vale con que estudies los que trabajamos en esta entrada; del resto ya hablaremos en otras entradas.


NOTAS

(1) Las formas de trabajo en que se basan los lenguajes de script hace que el output sea fundamentalmente desarrollado sobre los propios documentos, por lo que la función output del Diálogo es de uso muy limitado.

(2) Las variables oDialMod  y DialMau las podemos declarar como públicas o como privada (entonces dentro del script), pero es preferible crearlas como públicas para poder desarrollar otros script que trabajen con el diálogo.

(3La diferencia entre ambos script radica en cómo se formula la llamada al diálogo en concreto:

  • Bien mediante el método getByName() con el que culmina la ejecución del método CreateUNODialog()
  • Bien como parte del procedimiento CreateUNODialog(), que se concreta como DialogLibraries.Standard.Dialogo1
(4) Recuerda que para que funcione este script de cierre, la variable clave (oDialogo) debe haber sido declarada como pública, lo que implica que al inicio del módulo y fuera de un script.

(5) Recuerda que este código se crea sobre Calc, pero sirve también para WriterImpress y Draw.

No hay comentarios:

Publicar un comentario

Comenta esta entrada