(Résolu)Libreoffice Base Image visible et invisible

Est-ce possible de mettre une image visible et l’autre invisible? Comme:
Image1.visible- vrai
Image2.visible= faux

J’ai un liste box et lorsque qu’on le change, je voudrais qu L’image change.
Créer une macro, peut-être.

Donald
Forme1.jpg

Bonjour

Ceci ne peut se faire que par macro en effet. Associer à l’événement Exécuter l'action l’exemple suivant :

  • Accès au formulaire
  • Accès aux contrôles concernés (la liste et les contrôles picto)
  • Si la liste affiche “A”, rendre visible Contrôle picto 1 et invisible Contrôle picto 2
  • Faire l’inverse sinon

En basic :

Sub oAfficher

dim oDoc as object, oForm as object, oView as object, oCtrl1 as object, oCtrl2 as object
dim oViewCtrl as object, oListe as object

oDoc=thiscomponent
oView=oDoc.currentcontroller()
oForm=oDoc.drawpage.getforms().getbyname("MainForm")

oListe=oForm.getbyname("Zone de liste 1")

oCtrl1=oForm.getbyname("Contrôle picto 1")
oCtrl2=oForm.getbyname("Contrôle picto 2")

if oListe.StringItemList(oListe.SelectedItems(0)) = "A" then
	oViewCtrl=oView.getcontrol(oCtrl1)
	oViewCtrl.setVisible(True)
	oViewCtrl=oView.getcontrol(oCtrl2)
	oViewCtrl.setVisible(False)
else
	oViewCtrl=oView.getcontrol(oCtrl1)
	oViewCtrl.setVisible(False)
	oViewCtrl=oView.getcontrol(oCtrl2)
	oViewCtrl.setVisible(True)
end if

End Sub

Il faudra naturellement adapter les noms à ton cas (nom de formulaire, de contrôles, la valeur à tester, etc.)

Cela dit, ce code répond stricto sensu à la question mais il y a beaucoup de non-dits dans ta question : comment peut-il y avoir deux images pour le même enregistrement ? Les contrôles picto figurent-ils dans un sous-formulaire (auquel cas l’accès au contrôle est différent), les images sont-elles stockées ? Dans quelle table ?

En bref il t’incombera d’adapter à ton cas réel.

Cordialement

Les 2 images sont sur la feuilles. À voir ton code il me semble que ça doit fonctionner. Mais comme c’est la première fois que je fais une macro: ton “MainForm” correspond-t-il au nom du formulaire, car j’ai une erreur.

Merci

En passant j’ai seulement un seul Formulaire. J’essaie, mais ça ne fonctionne pas. J’ai l’erreur “Propriété ou méthode non trouvée”.

J’ai l’erreur: Type:com.sun.star.container.NoSuchElementException Message:.

Ça fonctionne, Pierre-Yves, il reste seulement à mettre une image invisible dès que le formulaire s’affiche. Pour l’instant je n’ai pas trouvé.