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

