[Base] utilisation de CloseVetoException

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 !
CrazyDams
Membre lOOyal
Membre lOOyal
Messages : 34
Inscription : 27 août 2018 06:54

[Base] utilisation de CloseVetoException

Message par CrazyDams »

Bonjour à toutes et à tous,

Je souhaite utiliser des listeners sur un formulaire pour surveiller la fermeture de celui-ci. Et je voudrais sous certaines condition (avec un "if") empêcher sa fermeture.
J'utilise notamment le "queryClosing" pour lequel il est préciser dans le devguide :

"Is called before XCloseListener::notifyClosing(). Listener has the chance to break that by throwing a CloseVetoException."

Si je comprends bien il est possible donc d'annuler la fermeture en renvoyant une exception CloseVetoException, mon souci est comment renvoie-t-on celle-ci ? Je ne comprends pas comment il faut formuler l'expression.

J'ai donc fait le code suivant en m'inspirant de ce que j'ai pu voir sur le forum et qui semble fonctionner puisque lorsque je clique sur la croix du formulaire mes différents messages s'affichent bien.

Code : Tout sélectionner


Sub Ecoute()
Dim VerifClose as object
Dim Comp as object
Comp = thiscomponent
VerifClose = CreateUnoListener("L_","com.sun.star.util.XCloseListener")
Comp.addCloseListener(VerifClose)
End Sub

Sub L_queryClosing()
msgbox("Ca va fermer")
'Si je ne veux pas, alors je veux renvoyer l'exception = CloseVetoException pour annuler la fermeture
End sub

Sub L_notifyClosing()
msgbox("C'est fermé")
End sub

Sub L_disposing()
msgbox("On vire tout")
End sub

Merci d'avance pour votre aide :)
Apache OpenOffice 4.1.5
Windows 8.1 64 bits
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Base] utilisation de CloseVetoException

Message par Piaf »

Bonjour
Voir Capture/gestion évènement fermeture de formulaire Le fil commence à dater mais je ne sais pas si cela a évolué depuis.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
CrazyDams
Membre lOOyal
Membre lOOyal
Messages : 34
Inscription : 27 août 2018 06:54

Re: [Base] utilisation de CloseVetoException

Message par CrazyDams »

Bonsoir Piaf,

Merci pour ta réponse, je n'avais pas vu ce post... j'arrive juste avec... 8 ans de retard :lol:
Et depuis, toujours pas d'avancée ? Peut-on voter quelque part concernant ce point ?
En attendant, je vais voir ce que çà donne avec intancelocker.
Mais du coup, je ne peux pas clôturer mon sujet...

@+
Apache OpenOffice 4.1.5
Windows 8.1 64 bits