[Résolu][Calc] Impossible d'arrêter le listener MouseClickHandler

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
pat_ice31
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 10 déc. 2021 09:59

[Résolu][Calc] Impossible d'arrêter le listener MouseClickHandler

Message par pat_ice31 »

Bonjour, dans la macro suivante, quand Sub ArreterListenerest exécuté (via un bouton) :
- Si le listener n'a jamais été lancé depuis l'ouverture du classeur : le message "Erreur : il n'y a pas de Listener à arrêter" est affiché, fonctionnement OK
- Si le listener a été lancé : le message "Listener a été arrêté" est affiché, fonctionnement OK
- Si le listener a déjà été arrêté : le message "Erreur : il n'y a pas de Listener à arrêter" devrait s'afficher, ce qui n'est pas le cas, bien que le listener soit arrêté (j'ai vérifié, il n'est plus en service). le "On error GoTo" n'est pas déclenché.

Je peux trouver des solutions de contournement (par exemple désactiver le bouton "ARRETER LISTENER" au premier clic), mais j'aimerai comprendre pourquoi le code prévu (qui correspond à tous les exemples que j'ai vus) ne fonctionne pas.
Si quelqu'un peut m'aider dans ma recherche, merci

Code : Tout sélectionner

Sub main
	CreerListener
End sub

Sub CreerListener
	monClasseurControleur = ThisComponent.currentController
	MonListener = createUnoListener("Test_", "com.sun.star.awt.XMouseClickHandler")
	monClasseurControleur.addMouseClickHandler(MonListener)
End Sub

Function Test_mousePressed(MonEvenement) As Boolean
  Test_mousePressed = false 
	‘ faire quelquechose ici
End Function

Function Test_mouseReleased(MonEvenement) As Boolean
	Test_mouseReleased = False
	' Ajouter ici "quelque chose"
End Function

Sub Test_disposing(MonEvenement)
	'ici : rien
End Sub

Sub ArreterListener
	On Error GoTo ErreurPasDeListener
	monClasseurControleur.removeMouseClickHandler(MonListener)
	msgBox "Listener a été arrêté"
	GoTo FinArreterListener

ErreurPasDeListener:
	MsgBox "Erreur : il n'y a pas de Listener à arrêter"

FinArreterListener:

End Sub
LibreOffice 7.2.4.1 (x64) Obligation de version - Windows 10 Prof.
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12457
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: removeMouseClickHandler + On error GoTo

Message par Bidouille »

Bonjour,

Cette section a des règles très précises que vous devez obligatoirement suivre pour obtenir de l'aide. C'est indiqué dans le cadre rouge en haut de la page.

Il est demandé aux auteurs de faire précéder le titre de leur question d'une balise adéquate. Ce balisage est extrêmement important car il permet d'avoir une base de connaissance optimum en cas de recherche. Avez-vous remarqué comment étaient les autres questions postées ?

Lisez ce fil pour savoir quelle balise utiliser : ftopic1369.html


Un titre accrocheur vous permettra d'une part d'être aidé plus rapidement et d'autre part, d'enrichir notre base de connaissances.
Nous l'avons fait pour vous cette fois-ci mais lors de votre prochaine question, nous vous remercions de le faire vous-même sous peine de voir votre sujet verrouillé.

Merci de votre collaboration.
pat_ice31
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 10 déc. 2021 09:59

Re: [Calc] Impossible d'arrêter le listener MouseClickHandler

Message par pat_ice31 »

Ok, merci d'avoir corrigé le titre, désolé pour cette erreur.
LibreOffice 7.2.4.1 (x64) Obligation de version - Windows 10 Prof.
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Impossible d'arrêter le listener MouseClickHandler

Message par Dude »

Salut,

Problème XY en perspective.
Qu'est ce que tu cherches à faire avec ton module d'écoute ?
Il y a les événements de feuille "Double clic" et "Clic droit" qui sont gérés nativement par Calc :
capture.jpg
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
pat_ice31
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 10 déc. 2021 09:59

Re: [Calc] Impossible d'arrêter le listener MouseClickHandler

Message par pat_ice31 »

Merci. Oui, il y a d'autres manières de faire, des contournements possibles, ...
Mais je cherche à comprendre ce comportement.
LibreOffice 7.2.4.1 (x64) Obligation de version - Windows 10 Prof.
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Impossible d'arrêter le listener MouseClickHandler

Message par Dude »

Ce n'est pas un contournement, c'est la méthode à adopter.
Bis repetitae :
Dude a écrit : 16 mai 2023 08:14 Qu'est ce que tu cherches à faire avec ton module d'écoute ?
pat_ice31
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 10 déc. 2021 09:59

Re: [Calc] Impossible d'arrêter le listener MouseClickHandler

Message par pat_ice31 »

Je cherche à utiliser le MouseClickHandler
LibreOffice 7.2.4.1 (x64) Obligation de version - Windows 10 Prof.
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Impossible d'arrêter le listener MouseClickHandler

Message par Dude »

Enlève le On error et tu comprendras que monClasseurControleur (ou MonListener) est inconnu au bataillon.
Le genre d'erreur qui est géré directement par l'événement de feuille dont a priori, tu t'obstines à ne pas vouloir te servir. :?
capture.jpg
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.