Gestire immagini collegate

From The Document Foundation Wiki
< Macros‎ | Base
Jump to navigation Jump to search
This page is a translated version of the page Macros/Base/001 and the translation is 100% complete.
Other languages:
English • ‎français • ‎italiano

Descrizione

Vorremmo gestire le immagini senza incorporarle nel database. Il vantaggio è che evita duplicazioni e soprattutto non aumenta la dimensione del database.

Questa funzione è accessibile senza macro (si veda Faq/Base/144). Vedremo qui che le proprietà interessate possono essere gestite tramite una macro. Il risultato desiderato è come mostrato:

screenshot of form
Formulaire de saisie/affichage des images
  • La Casella di testo in alto consente il recupero dell'immagine tramite un percorso file locale o un URL.
  • Il pulsante Seleziona file "..." apre una finestra di dialogo per selezionare il percorso del file locale.
  • La Casella di testo in basso consente di inserire un titolo per l'immagine.
  • Il Controllo immagine consente di visualizzare l'immagine.

Possiamo realizzare quanto sopra tramite le due subroutine come mostrato di seguito.

Codice

In 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 subroutine display_image è associata ai seguenti eventi:

  • Dopo una modifica nel salvataggio del modulo,
  • Se il Controllo immagine riceve una focalizzazione.

La subroutine save_path è associata ai seguenti eventi:

  • Perdita di messa a fuoco per una Casella di testo,
  • Testo modificato dall'oggetto Seleziona file.

Esempio di file ODB