Hola Manuel...
Hola a todos...

Los formularios en realidad son controles "incrustados" en cualquier
aplicación de OpenOffice.org, los cuadros de dialogo son los que desarrollas
desde el editor de OOo Basic y son ventanas completamente nuevas, a nivel
programación "casi" su unica diferencia en el modo en que accedes a ellos,
los formularios al estar embebidos "sobre" el documento, estan sobre la capa
de dibujo, por ello hay que acceder previamente al "modelo" del documento,
en cambio  los cuadros de dialogo se accede directamente, te recomiendo que
no lo veas por cual es más fácil de usar/programar sino que método se adapta
a tus necesidades, he visto pequeñas aplicaciones bastante buenas de las dos
formas, usando formularios y usando cuadros de dialogo...

Veamos un ejemplo...

Supongamos una hoja de calculo nueva, vamos al menú Ver | Barra de
herramientas | Campos de control de formulario, te tiene que mostrar dicha
barra de herramientas en donde veras iconos para agregar controles que ya
conoces, entre ellos, un cuadro de texto, agrega uno a la hoja de calculo
Lo primero que hay que saber es que hay un tiempo de diseño y un tiempo de
ejecución, esto lo controlas con el icono que es una mano señalando un botón
de comando que dice OK, en tiempo diseño es cuando puedes cambiar las
propiedades de los controles, lo notaras por que el control se vuelve un
objeto más de dibujo con su nodos para manipular su tamaño y su ancla para
establecer su posición y comportamiento, ahora, en tiempo de diseño,
selecciona este cuadro y dale un click con el botón derecho, del menú
contextual seleccionas Formulario..., en el cuadro de dialogo que te aparece
y se llama Propiedades del formulario en la ficha General en la opción
Nombre escribes frmPruebas o el nombre que prefieras para identificar al
formulario, clic en el botón cerrar. De nuevo, sobre el cuadro de texto,
llamamos al menú contextual y ahora seleccionamos Campo de control... de
este modo accedemos a las propiedades del control, busca nombre y
establecelo a txtPruebas o de nuevo, al que te sea más conveniente...

Entra al editor de OOo Basic y en un nuevo modulo copia la siguiente macro

Sub PierdeFoco()
Dim sTmp As String
Dim PaginaDibujo As Object
Dim Formulario As Object
Dim txtPruebas As Object

    PaginaDibujo =
ThisComponent.getCurrentController.getActiveSheet.getDrawPage
    Formulario = PaginaDibujo.Forms.getByName("frmPruebas")
    txtPruebas = Formulario.getByName("txtPruebas")
    sTmp = txtPruebas.Text()

    MsgBox sTmp

End Sub

De hecho ya puedes probar la macro, deberia de funcionar solo cuida de
llamarla teniendo activa la hoja donde insertaste el control, solo te resta
asignar al evento la macro, para esto, ve de nuevo a la hoja de calculo,
menu contextual del cuadro de dialogo y seleccionas Campo de control... en
la ficha Acontecimiento busca el evento Al perder el foco y asignale la
macro anterior, te debe de quedar algo asi:

vnd.sun.star.script:Standard.Module1.PierdeFoco?language=Basic&location=document

Cierras y pruebas...

Continuara....


Mauricio










El 10 de septiembre de 2008 11:45, Manuel Andres Ramirez <
[EMAIL PROTECTED]> escribió:

> Gracias, Mauricio, por tu pronta respuesta.
>
> Sigo entre líneas.
>
> Me gustaría que me ampliaras un poco el concepto, con qué criterio se debe
> escoger los Formularios o los Diálogos para la programación.
>
> Tienen alguna diferencia en cuento a facilidad de manejo/programación.
>
> Sé que los formularios son documentos de Writer.
>
> No tengo muy clara la diferencia, el desarrollo lo estoy haciendo en base
> con una base de datos embebida.
>
-- 
_______________________________
Todo lo que no es dado es perdido

Responder a