Macros/Draw/001/fr

Contexte
On souhaite pouvoir afficher ou masquer des objets par un clic de bouton de commande.

La copie d'écran ci-dessous montre un exemple simple dans lequel cliquer sur les boutons "Carrés" et "Cercles" affiche ou masque respectivement les carrés ou les cercles bleus.



Réalisation
LibreOffice Draw permet de définir des couches dans les dessins. Les couches permettent de rassembler sur une page des éléments qui sont liés. Considérez les couches comme différents espaces de travail que vous pouvez masquer à l'écran, masquer à l'impression ou verrouiller. Par défaut, LibreOffice Draw propose trois couches :
 * Mise en page
 * Contrôles
 * Lignes de cote

Nous utiliserons la possibilité de créer des couches supplémentaires pour regrouper les éléments à afficher ou masquer :
 * Les carrés seront dessinés sur une couche nommée Carrés.
 * Les cercles seront dessinés sur une couche nommée Cercles.

Les couches disposent d'une propriété IsVisible, de type booléen (vrai / faux). Le programme suivant "alterne" la valeur de cette propriété : Vrai devient Faux et vice-versa.

Une procédure unique est affectée à l'événement Éxécuter l'action de chaque bouton. La variable LibOEvent est passée lors du clic sur le bouton et de l'appel de la procédure.

Partant de cet objet nous pouvons "remonter" à la propriété Étiquette (Label) du bouton et nous recherchons dans les couches celle portant le même nom. Une autre possibilité serait d'utiliser la propriété Complément d'information (Tag) pour y stocker le nom de la couche concernée.

On prévient une éventuelle erreur en vérifiant que le document comprend bien une couche de ce nom via la méthode hasByName.

Code
En LibreOffice Basic:

Document exemple

 * [[Media:FR.MACROS Draw 001 GererAffichageCouche.odg|Télécharger un document exemple]]