Jump to content

Macros/Base/001/es

From The Document Foundation Wiki
This page is a translated version of the page Macros/Base/001 and the translation is 100% complete.


Descripción

Nos gustaría administrar imágenes sin incorporarlas en la base de datos para evitar la duplicación y especialmente para no aumentar el tamaño de la base de datos.

Esta característica es accesible sin una macro (vea la respuesta a ¿Cómo manejar imágenes enlazadas?). Aquí veremos las propiedades que se pueden administrar a través de una macro. El resultado conseguido es el siguiente:

screenshot of form
Formulario de elección/visualización de imágenes
  • El Cuadro de texto superior permite indicar la imagen escribiendo el camino o URL local.
  • El botón ... (Seleccionar archivo), abre un diálogo para seleccionar un archivo local.
  • El Cuadro de texto inferior permite asignar un texto alternativo (título) a la imagen.
  • El Control de la imagen muestra la imagen.

Podemos hacer que funcione mediante las dos subrutinas siguientes

Código

en LibreOffice Basic:

Option Explicit

Sub display_image()
    
    Dim oForm As Object
    
    oForm = ThisComponent.DrawPage.Forms.getByName("Standard")    
    oForm.getByName("ImageControl").ImageURL = convertToUrl( oForm.getByName("textbox_ImageURL").Text )

End Sub ' display_image


Sub save_path(oEvent)
    
    Dim oForm As Object

    oForm = ThisComponent.DrawPage.Forms.getByName("Standard")
    oForm.getByName("textbox_ImageURL").Text = oEvent.Source.Text
    oForm.getByName("textbox_ImageURL").commit
    
    display_image()
    
End Sub ' save_path

La subrutina display_Image está asociada a los siguientes sucesos:

  • Después de un cambio al guardar el formulario,
  • Si el Control de imagen recibe el foco

La subrutina save_path está asociada a los siguientes sucesos:

  • Pérdida de foco de un Cuadro de texto,
  • Texto modificado en la Selección de archivos

Descarga de archivo ODB