<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.open-office.es/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>https://wiki.open-office.es/index.php?action=history&amp;feed=atom&amp;title=Dialogos_OpenOffice_Basic</id>
		<title>Dialogos OpenOffice Basic - Historial de revisiones</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.open-office.es/index.php?action=history&amp;feed=atom&amp;title=Dialogos_OpenOffice_Basic"/>
		<link rel="alternate" type="text/html" href="https://wiki.open-office.es/index.php?title=Dialogos_OpenOffice_Basic&amp;action=history"/>
		<updated>2026-06-04T03:11:28Z</updated>
		<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
		<generator>MediaWiki 1.23.5</generator>

	<entry>
		<id>https://wiki.open-office.es/index.php?title=Dialogos_OpenOffice_Basic&amp;diff=12953&amp;oldid=prev</id>
		<title>Salva en 01:46 27 may 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.open-office.es/index.php?title=Dialogos_OpenOffice_Basic&amp;diff=12953&amp;oldid=prev"/>
				<updated>2015-05-27T01:46:22Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Menu|cat=Basic|Titulo=Diálogos OpenOffice Basic|vers=4.1.x}}&lt;br /&gt;
&amp;lt;seo title=&amp;quot;Diálogos - Apache OpenOffice Basic&amp;quot; &lt;br /&gt;
metakeywords=&amp;quot;macro,basic,dialogos,starbasic,manual,curso,tutorial,open,office,openoffice,apache openoffice,libreoffice&amp;quot; &lt;br /&gt;
metadescription=&amp;quot;Recopilación de macros en lenguaje OOo Basic (StarBasic) para crear diálogos en Apache OpenOffice y LibreOffice&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Los documentos de Apache OpenOffice (documentos de texto, libros de hojas de cálculo, presentaciones, bases de datos...) permiten que se les agreguen diálogos y formularios. Estos a su vez pueden estar vinculados a las macros de OOoBasic para ampliar considerablemente las posibilidades de uso de la suite.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mediante los diálogos podemos, por ejemplo, mostrar información de la base de datos o guiar a los usuarios a través de un proceso paso a paso para crear un nuevo documento, de la misma forma que lo hace un asistente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;mitb&amp;quot; width=&amp;quot;80%&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;&lt;br /&gt;
*[[#Trabajando con diálogos|Trabajando con diálogos]]&amp;lt;/big&amp;gt;&lt;br /&gt;
:*[[#Creación de cuadros de diálogo|Creación de cuadros de diálogo]]&lt;br /&gt;
:*[[#Cerrar el diálogo con Aceptar o Cancelar|Cerrar el diálogo con Aceptar o Cancelar]]&lt;br /&gt;
:*[[#Cerrar el diálogo con el botón Cerrar de la barra de título|Cerrar el diálogo con el botón Cerrar de la barra de título]]&lt;br /&gt;
:*[[#Cerrar el diálogo desde una llamada del programa|Cerrar el diálogo desde una llamada del programa]]&amp;lt;/big&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Trabajando con diálogos =&lt;br /&gt;
Los diálogos básicos consisten en una ventana emergente que puede contener campos de texto, cuadros de lista, botones, botones de radio, casillas de selección, imágenes y otros elementos de control (genéricamente denominados controles).&lt;br /&gt;
&lt;br /&gt;
== Creación de cuadros de diálogo ==&lt;br /&gt;
Para crear diálogos utilizamos el editor de diálogos de Apache OpenOffice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El editor de diálogos nos permite:&lt;br /&gt;
&lt;br /&gt;
:*Crear y estructurar los diálogos&lt;br /&gt;
:*Arrastrar los elementos de control de la plataforma de diseño (a la derecha) al área de diálogo, y definir su posición y tamaño.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:dialogos-basic-macro-openoffice-001.png|center|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El ejemplo muestra un cuadro de diálogo que contiene una etiqueta, un cuadro de lista, dos botones y una imagen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:dialogos-basic-macro-openoffice-002.png|center|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos crear un cuadro de diálogo creado con el editor de diálogos con el siguiente código:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Function DlgCrear( cNomLibreria As String, cNomDlg As String ) As Object&lt;br /&gt;
'--------------------------------------------------------------------------&lt;br /&gt;
   On Local Error GoTo Error_DlgAbrir&lt;br /&gt;
   Dim Dlg As Object&lt;br /&gt;
   If DialogLibraries.HasByName(cNomLibreria) Then&lt;br /&gt;
      DialogLibraries.LoadLibrary(cNomLibreria)&lt;br /&gt;
      oDlg = CreateUNODialog(DialogLibraries.Standard.GetByName(cNomDlg))&lt;br /&gt;
      DlgCrear = oDlg&lt;br /&gt;
   Else&lt;br /&gt;
      MsgBox &amp;quot;La librería &amp;quot; &amp;amp;  cNomLibreria &amp;amp; &amp;quot; no existe&amp;quot;, 144, &amp;quot;Error&amp;quot;&lt;br /&gt;
   EndIf&lt;br /&gt;
   Exit Function&lt;br /&gt;
&lt;br /&gt;
Error_DlgAbrir:&lt;br /&gt;
   MsgBox &amp;quot;Error al abrir el diálogo &amp;quot; &amp;amp; cNomDlg &amp;amp; Chr(13) &amp;amp; Error, 144, &amp;quot;Error&amp;quot;&lt;br /&gt;
End Function&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El diálogo abierto se puede cerrar con este código&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Sub DlgCerrar( oDlg As Object )&lt;br /&gt;
'--------------------------------------------------------------------------&lt;br /&gt;
   On Local Error GoTo Error_DlgCerrar&lt;br /&gt;
   oDlg.Dispose()&lt;br /&gt;
   Exit Sub&lt;br /&gt;
   &lt;br /&gt;
Error_DlgCerrar:&lt;br /&gt;
   MsgBox &amp;quot;Error al cerrar el diálogo&amp;quot; &amp;amp; Chr(13) &amp;amp; Error, 144, &amp;quot;Error&amp;quot;&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para mostrar el diálogo utilizaremos el método '''''Execute'''''; este es un ejemplo del uso de las dos funciones combinadas para mostrar el diálogo ''Dialog1'' creado con el editor de diálogos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Sub Main()&lt;br /&gt;
'--------------------------------------------------------------------------&lt;br /&gt;
   Dim oDlg As Object&lt;br /&gt;
   oDlg = DlgCrear( &amp;quot;Standard&amp;quot;, &amp;quot;Dialog1&amp;quot; )&lt;br /&gt;
   oDlg.Execute()&lt;br /&gt;
   DlgCerrar oDlg&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Y este es el resultado de ejecutar el código:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:dialogos-basic-macro-openoffice-003.png|center|link=]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El método '''''CreateUnoDialog''''' crea un objeto llamado '''''oDlg''''' que hace referencia al diálogo asociado. Antes de abrir el diálogo es necesario asegurarse que la librería que lo contiene (en nuestro caso la librería '''''Standard''''') existe y está cargada en memoria, para lo que utilizamos los métodos '''''HasByName''''' y '''''LoadLibrary''''' del objeto '''''DialogLibraries'''''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una vez que el diálogo ha sido inicializado puede ejecutarse (mostrarse) mediante el método '''''Execute'''''; el diálogo se muestra en forma '''modal''', lo que significa que toma el foco de atención de la aplicación y no permite trabajar en la misma hasta que cerremos el diálogo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Durante todo el tiempo en que el diálogo permanece abierto, el programa permanece en la llamada '''''Execute'''''. Cuando se cierra el diálogo se ejecuta la siguiente instrucción, en nuestro ejemplo, la que elimina el diálogo (descarga el diálogo de la memoria, dejando ésta libre) mediante el método '''''Dispose'''''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cerrar el diálogo con Aceptar o Cancelar ==&lt;br /&gt;
Si un diálogo posee los botones {{Boton|Aceptar}} y {{Boton|Cancelar}}, y estos han sido definidos con su propiedad '''Tipo de botón''' ''Aceptar'' y ''Cancelar'', respectivamente, al hacer clic sobre alguno de ellos el diálogo se cierra. Podemos detectar sobre qué botón hizo clic el usuario a través del método '''''Execute''''', ya que si se pulsó el botón {{Boton|Aceptar}} devuelve un 1, y un 0 en caso contrario.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Sub Main()&lt;br /&gt;
'--------------------------------------------------------------------------&lt;br /&gt;
   Dim oDlg As Object, nBoton As Integer&lt;br /&gt;
   oDlg = DlgCrear( &amp;quot;Standard&amp;quot;, &amp;quot;Dialog1&amp;quot; )&lt;br /&gt;
   nBoton = oDlg.Execute()&lt;br /&gt;
   If nBoton = 1 Then&lt;br /&gt;
      MsgBox (&amp;quot;Se ha pulsado el botón Aceptar&amp;quot;, 192, &amp;quot;Información&amp;quot;)&lt;br /&gt;
   Else&lt;br /&gt;
      MsgBox (&amp;quot;Se ha pulsado el botón Cancelar&amp;quot;, 192, &amp;quot;Información&amp;quot;)&lt;br /&gt;
   EndIf&lt;br /&gt;
   DlgCerrar oDlg&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cerrar el diálogo con el botón Cerrar de la barra de título ==&lt;br /&gt;
Si se cierra el diálogo con el botón {{Boton|Cerrar}} de la barra de título, el valor devuelto por el método '''''Execute''''' es 0, el mismo que cuando se cierra mediante el botón {{Boton|Cancelar}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cerrar el diálogo desde una llamada del programa ==&lt;br /&gt;
Si deseamos cerrar el diálogo desde una orden del programa podemos utilizar el método '''''endExecute''''':&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Sub DlgForzarCierre( oDlg As Object )&lt;br /&gt;
'--------------------------------------------------------------------------&lt;br /&gt;
   On Local Error GoTo Error_DlgForzarCierre&lt;br /&gt;
   oDlg.endExecute()&lt;br /&gt;
   Exit Sub&lt;br /&gt;
   &lt;br /&gt;
Error_DlgForzarCierre:&lt;br /&gt;
   MsgBox &amp;quot;Error al forzar el cierre del diálogo&amp;quot; &amp;amp; Chr(13) &amp;amp; Error, 144, &amp;quot;Error&amp;quot;&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El valor devuelto por el método '''''Execute''''' también es 0, el mismo que cuando se cierra mediante el botón {{Boton|Cancelar}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Aviso|ancho=80%|imagen=[[image:Señal_Nota.png|link=]]|color=RoyalBlue|imagenpos= | texto=&amp;lt;small&amp;gt;Puedes encontrar más información sobre diálogos y formularios en:&lt;br /&gt;
:*{{Enlace|https://wiki.openoffice.org/wiki/ES/Manuales/GuiaAOO/TemasAvanzados/Macros/StarBasic|StarBasic: Guía de OooBasic}} (en español. Eternas gracias, Mauricio)&lt;br /&gt;
:*{{Enlace|https://wiki.openoffice.org/wiki/Documentation/DevGuide/OpenOffice.org_Developers_Guide|Apache OpenOffice Developer's Guide}} (en inglés)&lt;br /&gt;
:*{{Enlace|https://wiki.openoffice.org/wiki/Documentation/DevGuide/Basic/Programming_Dialogs_and_Dialog_Controls|Programming Dialogs and Dialog Controls}} (en inglés)&lt;br /&gt;
:*{{Enlace|https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide|OpenOffice.org BASIC Programming Guide}} (en inglés)&amp;lt;/small&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
{{Aviso|ancho=80%|imagen=[[image:Señal_CopyRight.png|link=]]|color=NavajoWhite|imagenpos=top | texto=&amp;lt;small&amp;gt;&amp;lt;small&amp;gt;Texto, imágenes y código bajo licencia [[Image:CC_BY-SA.png|64px|link=http://creativecommons.org/licenses/by-sa/3.0/es/]]&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;&amp;lt;br&amp;gt;Basado en el documento '''Getting Started with Base. Apache OpenOffice&amp;lt;sup&amp;gt;tm&amp;lt;/sup&amp;gt; Database Component''', de '''Drew Jensen''' Copyright 2013 liberado bajo licencia Apache Software License 2.0, que incluye material de:&lt;br /&gt;
:*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&lt;br /&gt;
:*OpenOffice.org 3.2 BASIC Guide · March 2010, Copyright Oracle Corp.&amp;lt;/small&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/small&amp;gt; }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Pie|Acceso a los controles de los dialogos en OpenOffice Basic|Acceso a los controles de los diálogos|Larga=8}}&lt;br /&gt;
[[Category:Ver.4.0.x]][[Category:Ver.3.4.x]][[Category:Ver.3.3.x]][[Category:Ver.3.2.x]][[Category:Ver.3.1.x]]&lt;/div&gt;</summary>
		<author><name>Salva</name></author>	</entry>

	</feed>