Gestire immagini collegate
TDF LibreOffice Document Liberation Project Blog comunitari Weblate Nextcloud Redmine Ask LibreOffice Donazione
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:
- 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.