Configurar el orden de los elementos de un formulario

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
facu081088
Mensajes: 9
Registrado: Jue Mar 22, 2012 7:21 pm

Configurar el orden de los elementos de un formulario

Mensaje por facu081088 »

Buenas!! Tengo la siguiente duda. Supongamos q "Form" es un formulario. Yo puedo acceder a sus componentes mediante la instruccion Form.GetByIndex(xx) (siendo xx un numero). Ahora bien, supongase que yo quiero cambiar el orden de estos indices, para agrupar los de un cierto tipo, pudiendo de esta forma iterar sobre su indice y realizar operaciones con ellos. Es esto posible? y como?? Gracias de antemano.
Win XP (32bits), LibreOffice 3.4.4
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Configurar el orden de los elementos de un formulario

Mensaje por RMG »

Hola,

Para cambiar el orden de los controles de un formulario, tienes dos opciones.

1. En las propiedades del control en "Orden de tabuladores" las numeras según te interese (el primero es el 0)
2. Abres el nagedor del formulario, te situas encima del formulario a modificar y con el botón derecho, eliges "Secuencia de activación", con las flechas vas subiendo y bajando los controles según tus necesidades.

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
facu081088
Mensajes: 9
Registrado: Jue Mar 22, 2012 7:21 pm

Re: Configurar el orden de los elementos de un formulario

Mensaje por facu081088 »

Intenté con Orden de tabuladores, pero no funcionó, aparentemente ésto y el valor indice son dos campos aparte. Probare a la brevedad la segunda opcion q propones, y volvere con el resultado de dicha prueba. Gracias!
Win XP (32bits), LibreOffice 3.4.4
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Configurar el orden de los elementos de un formulario

Mensaje por mauricio »

Hola...

Puedes asignar la misma macro a los mismos eventos de varios controles, con esto ya puedes controlar todos los que quieras...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
facu081088
Mensajes: 9
Registrado: Jue Mar 22, 2012 7:21 pm

Re: Configurar el orden de los elementos de un formulario

Mensaje por facu081088 »

Mauricio, no se si entiendo del todo tu sugerencia, podrias aclararme un poco a que te refieres con eso?
Win XP (32bits), LibreOffice 3.4.4
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Configurar el orden de los elementos de un formulario

Mensaje por mauricio »

En mi libro esta mejor y ampliamente el asunto: http://user.services.openoffice.org/es/ ... =50&t=1545

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
anersan
Mensajes: 41
Registrado: Vie Ene 18, 2013 8:38 pm

Re: Configurar el orden de los elementos de un formulario

Mensaje por anersan »

Hola,

Estaba buscando la solución a un problema y me he encontrado con este viejo post.
No estoy seguro de si hablamos de lo mismo o no.

Lo que a mi me gustaría hacer es ésto:
https://help.libreoffice.org/3.3/Common/Tab_Order/es

...que es exctamente lo que proponía RMG.

Alguien sabe cómo se puede hacer esto mediante código.
Esta debe de ser una de esas propiedades a las que sólo se puede acceder en modo "vista", cierto?

Gracias por la ayuda!!
Libre Office 3 en Ubuntu 12.04
Avatar de Usuario
anersan
Mensajes: 41
Registrado: Vie Ene 18, 2013 8:38 pm

Re: Configurar el orden de los elementos de un formulario

Mensaje por anersan »

Hola de nuevo,

Bueno, aquí dejo un ejemplo, que seguro que se verá más claro.

La macro crea 3 botones de comando y les asigna 3 tareas.

Por razones del diseño, me gustaría que la posición de los 3 botones creados sea tal que se superpongan entre sí, y que se queden siempre con el mismo orden (de hecho luego me gustaría poner un botón pequeño dentro de uno grande)
El problema es que el botón que se muestra "por encima" de los otros es siempre el último que ha sido pulsado (y al final terminará por ocultar al pequeño)

Seguramente habrá una forma de asignar mediante código la secuencia de tabulación.
Alguien sabe cómo?

Muchas gracias y saludos!!
Adjuntos
ejemplo orden de controles.ods
(15.24 KiB) Descargado 138 veces
Libre Office 3 en Ubuntu 12.04
Avatar de Usuario
anersan
Mensajes: 41
Registrado: Vie Ene 18, 2013 8:38 pm

[RESUELTO] Configurar el orden de los elementos de un formul

Mensaje por anersan »

Hey,

He encontrado a medias como resolver el problema, en la página 450 de la última versión del libro de Mauricio (bendito sea ese libro).

Consiste en asignar el foco consecutivamente a todos los botones cada vez que pulso cualquier botón.
De esta forma, el último botón del bucle será el que se quede por encima de los demás.

Pero no estoy seguro si ésto es lo mismo que la secuencia de tabulation (o de activación).

Bueno, ahí dejo mi solución, para quien pueda interesarle.

A falta de otra idea mejor, creo que daré el tema por resuelto

Saludos!!
Adjuntos
ejemplo orden de controles2.ods
(15.45 KiB) Descargado 238 veces
Libre Office 3 en Ubuntu 12.04
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Configurar el orden de los elementos de un formulario

Mensaje por mauricio »

Estoy escribiendo de memoria...

Lo que tu quieres es el orden Z, cuya propiedad es ZOrder, para que establezcas la posición del control que quieras, pero creo recordar que se accede desde la página de dibujo, por que es un objeto shape, verifica por ahí...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
anersan
Mensajes: 41
Registrado: Vie Ene 18, 2013 8:38 pm

Re: Configurar el orden de los elementos de un formulario

Mensaje por anersan »

Gracias por la respuesta Mauricio

(perdona que tardara en responder. andaba algo griposo)

Para resumir el problema, me gustaría hacer una macro ligada al botón "inicio" para que cambie el orden de los botones: el "boton 1" quedaría por encima del "boton 2" y del "boton 3", y el "boton 2" quedaría por encima del "boton 3".
Dejo adjunto el fichero.

He probado la propiedad ZOrder en la capa de dibujo [ oHoja.getDrawPage ], en las formas del formulario [ oPaginaDibujo.getForms.getByName("Formulaire") ] y en el modo vista
[ oControlVista = ThisComponent.getCurrentController.getControl(oControlModelo) ]

El único sitio donde no da error es en la capa de dibujo.
Lo único es que no sucede nada en absoluto. Ningún cambio en las propiedades de los botones. Y mucho menos en la secuencia de activacion.

No sé por dónde meterle mano al asunto.

Cualquier ayuda será bienvenida.

Gracias!!
Adjuntos
ejemplo orden de controles3.ods
(14.5 KiB) Descargado 155 veces
Libre Office 3 en Ubuntu 12.04
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Configurar el orden de los elementos de un formulario

Mensaje por mauricio »

Estuve probando con la propiedad ZOrder, y, con los objetos de dibujo funciona correctamente, mientras que con controles de formulario no. Se me ocurre que tal vez puedas reemplazar los controles por dibujos, un rectángulo por ejemplo y que le asignes la macro correspondiente...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
anersan
Mensajes: 41
Registrado: Vie Ene 18, 2013 8:38 pm

[RESUELTO] Configurar el orden de los elementos de un formul

Mensaje por anersan »

Buff, por fin lo he encontrado.

La propiedad que buscaba es TabIndex. Es la que afecta a los controles
Mientras que ZOrder sirve para los objetos de dibujo.

Con eso y con SetFocus consigo decidir el orden de los botones.

Gracias por los comentarios.

Un saludo!
Adjuntos
ejemplo orden de controles3.ods
(13.98 KiB) Descargado 184 veces
Libre Office 3 en Ubuntu 12.04
Responder