<?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_multipagina_en_OpenOffice_Basic</id>
		<title>Dialogos multipagina en 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_multipagina_en_OpenOffice_Basic"/>
		<link rel="alternate" type="text/html" href="https://wiki.open-office.es/index.php?title=Dialogos_multipagina_en_OpenOffice_Basic&amp;action=history"/>
		<updated>2026-06-04T03:11:24Z</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_multipagina_en_OpenOffice_Basic&amp;diff=12956&amp;oldid=prev</id>
		<title>Salva en 02:08 27 may 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.open-office.es/index.php?title=Dialogos_multipagina_en_OpenOffice_Basic&amp;diff=12956&amp;oldid=prev"/>
				<updated>2015-05-27T02:08:40Z</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 multi-página|vers=4.1.x}}&lt;br /&gt;
&amp;lt;seo title=&amp;quot;Diálogos multi-página - Apache OpenOffice Basic&amp;quot; &lt;br /&gt;
metakeywords=&amp;quot;multipagina,acceso,control,controles,macro,basic,dialogos,starbasic,manual,curso,tutorial,open,office,openoffice,apache openoffice,libreoffice&amp;quot; &lt;br /&gt;
metadescription=&amp;quot;Cómo crear y modificar diálogos multi-página en lenguaje OOo Basic (StarBasic) en Apache OpenOffice y LibreOffice&amp;quot;/&amp;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;
*[[#Diálogos multi-página                 |Diálogos multi-página]]&amp;lt;/big&amp;gt;&lt;br /&gt;
:*[[#Definir las páginas del diálogo      |Definir las páginas del diálogo]]&lt;br /&gt;
:*[[#Cambiar de página durante la ejecución|Cambiar de página durante la ejecución]]&amp;lt;big&amp;gt;&lt;br /&gt;
*[[#Diálogos en varios idiomas            |Diálogos en varios idiomas]]&lt;br /&gt;
&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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)'''''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Definir las páginas del diálogo ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
   oDlg = DlgCrear( &amp;quot;Standard&amp;quot;, &amp;quot;Dialog1&amp;quot; )	&lt;br /&gt;
   oDlg.Model.Title = &amp;quot;Copias de seguridad de clientes&amp;quot;&lt;br /&gt;
   oDlg.Model.Step = 1&lt;br /&gt;
   oModel = Model(oDlg, &amp;quot;ImgCopiar&amp;quot; )&lt;br /&gt;
   oModel.Step = 1&lt;br /&gt;
   oModel = Model(oDlg, &amp;quot;ImgRestaurar&amp;quot; )&lt;br /&gt;
   oModel.Step = 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
:1. Agregar los nuevos controles {{Boton|BtCopiar}}, {{Boton|BtRestaurar}} y '''''FrameControl1'''''. El diálogo mantiene su propiedad '''''Página (Step)''''' a 0, y los nuevos controles la heredan.&lt;br /&gt;
:2. Seleccionar el diálogo desde su marco; ajustar su propiedad Página (Step) a 1&lt;br /&gt;
:3. Agregar los nuevos controles {{Boton|ListaDst}}, {{Boton|BtAgregaTodos}}, {{Boton|BtAgregaSel}}, {{Boton|BtQuitaSel}}, {{Boton|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'''''. &lt;br /&gt;
:4. Seleccionar el diálogo desde su marco; ajustar su propiedad '''''Página (Step)''''' a 2&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Veamos el aspecto que presenta ahora:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:dialogos-basic-macro-openoffice-007.png|center|link=]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;small&amp;gt;''Diálogo con la propiedad '''Página (Step)''' establecida a 1''&amp;lt;/small&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:dialogos-basic-macro-openoffice-008.png|center|link=]]&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;small&amp;gt;''Diálogo con la propiedad '''Página (Step)''' establecida a 1''&amp;lt;/small&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Aviso|ancho=80%|imagen=[[image:Señal_Nota.png|link=]]|color=RoyalBlue|imagenpos= | texto=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. }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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 {{Boton|Aceptar}} y {{Boton|Cancelar}}, {{Boton|Hacer copia}}, {{Boton|Restaurar copia}} y del control '''''Cuadro de grupo'''''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En cambio, las imágenes y el resto de controles se han establecido en páginas distintas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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''''':&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;
&lt;br /&gt;
   oDlg = DlgCrear( &amp;quot;Standard&amp;quot;, &amp;quot;Dialog1&amp;quot; )&lt;br /&gt;
   oDlg.Model.Title = &amp;quot;Copias de seguridad de clientes&amp;quot;&lt;br /&gt;
   oDlg.Model.Step = 1&lt;br /&gt;
&lt;br /&gt;
   nBoton = oDlg.Execute()&lt;br /&gt;
   If nBoton = 1 Then MsgBox (&amp;quot;Se ha pulsado el botón Aceptar&amp;quot;, 192, &amp;quot;Información&amp;quot;)&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;
== Cambiar de página durante la ejecución ==&lt;br /&gt;
Los botones {{Boton|BtCopiar}} y {{Boton|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:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Sub BtCopiar_Clic( oEv )&lt;br /&gt;
'--------------------------------------------------------------------------&lt;br /&gt;
   Dim oDlg As Object, oCtrl As Object&lt;br /&gt;
   oDlg = oEv.Source.Context&lt;br /&gt;
   oDlg.Model.Step = 1&lt;br /&gt;
   oDlg.Model.Title = &amp;quot;Copias de seguridad de clientes&amp;quot;   &lt;br /&gt;
   oCtrl = Control( oDlg, &amp;quot;Label1&amp;quot; )&lt;br /&gt;
   oCtrl.Text = &amp;quot;Selecciona uno de la lista&amp;quot;&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Sub BtRestaurar_Clic( oEv )&lt;br /&gt;
'--------------------------------------------------------------------------&lt;br /&gt;
   Dim oDlg As Object, oCtrl As Object&lt;br /&gt;
   oDlg = oEv.Source.Context&lt;br /&gt;
   oDlg.Model.Step = 2&lt;br /&gt;
   oDlg.Model.Title = &amp;quot;Restaurar copias de seguridad de clientes&amp;quot;   &lt;br /&gt;
   oCtrl = Control( oDlg, &amp;quot;Label1&amp;quot; )&lt;br /&gt;
   oCtrl.Text = &amp;quot;Selecciona el archivo a restaurar&amp;quot;&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Diálogos en varios idiomas ==&lt;br /&gt;
Las propiedades de tipo texto de los controles pueden ser localizadas en multitud de idiomas a elección.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para localizar los textos debemos mostrar la barra de herramientas '''''Idioma''''' desde el menú '''''Ver &amp;gt; Barras de herramientas...''''', y seleccionando cada idioma a utilizar, definir los textos correspondiente en cada uno de los controles.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Aviso|ancho=80%|imagen=[[image:Señal_Nota.png|link=]]|color=RoyalBlue|imagenpos= | texto=Más información sobre localización de diálogos en&lt;br /&gt;
:*{{Enlace|https://wiki.openoffice.org/wiki/Documentation/DevGuide/Basic/Dialog_Localization|Dialog Localization}} (en inglés)}}&lt;br /&gt;
&lt;br /&gt;
{{Aviso|ancho=80%|imagen=[[image:Señal_aviso.png|link=]]|color=Orange|imagenpos= | texto='''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}}&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;
{{Pie|Eventos en OpenOffice Basic|Eventos|Larga=5}}&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>