Comment gérer les images liées ?
Outdated translations are marked like this.
TDF LibreOffice Document Liberation Project Blogs communautaires Weblate Nextcloud Redmine Ask LibreOffice Donner
Description
On souhaite gérer des images sans incorporer ces dernières dans la base. L'avantage est de ne pas les dupliquer et surtout de ne pas faire grossir d'autant la base de données.
Cette fonctionnalité est accessible sans macro (voir la FAQ correspondante de la section Base). Nous verrons ici comment gérer par programme les propriétés concernées.
Résultat souhaité
- Une zone de texte permettant de saisir ou coller le chemin d'accès à l'image (local ou Url).
- Un contrôle Sélection de fichier pour permettre la sélection des images.
- Le formulaire comprend en outre une zone de texte permettant à l'utilisateur de saisir un titre à l'image.
- Le contrôle Picto permettant l'affichage occupe le bas du formulaire
Base permet de réaliser cela via deux procédures.
Code
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 procédure display_image (afficher image) est associée aux événements :
- Après le changement d'enregistrement du formulaire,
- À la réception du focus du contrôle Image.
La procédure save_path (enregistrer chemin) est associée aux événements :
- À la perte du focus du contrôle zone de texte,
- Texte modifié du contrôle Sélection de fichier.