Comment gérer les images liées ?

    From The Document Foundation Wiki
    < Macros‎ | Base
    This page is a translated version of the page Macros/Base/001 and the translation is 91% complete.
    Outdated translations are marked like this.


    Other languages:

    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é

    copie d'écran formulaire
    Formulaire de saisie/affichage des images
    • 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.

    Document exemple