Gestire immagini collegate

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


    Other languages:

    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 Special:MyLanguage/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