Contenu

# Fonction CreateUnoListener

Crée une instance Listener.

De nombreux objets Uno vous permettent d'enregistrer des écouteurs avec des interfaces d'écoute dédiées. Cela permet d'écouter des événements spécifiques et d'appeler la méthode d'écoute appropriée. La fonction CreateUnoListener définit une interface d'écoute associée à un objet UNO. L'interface d'écoute est alors liée à son objet associé.

### Syntaxe :

        CreateUnoListener( Prefix As String, Typename As String) As Object

### Paramètres :

Prefix : un préfixe de texte utilisé dans les sous-programmes BASIC qui gèrent les événements.

Typename : nom complet de l'interface d'écoute UNO.

### Valeur de retour :

Le service UNO correspondant au nom de l'interface d'écoute Typename, valeur Null sinon.

### Exemple :

L'exemple suivant écoute les événements se produisant pour un objet de bibliothèque BASIC.

    Dim oListener As Object
    oListener = CreateUnoListener( "ContListener_","com.sun.star.container.XContainerListener" )

La méthode CreateUnoListener nécessite deux paramètres. Le premier est Prefix et est expliqué en détail ci-dessous. Le deuxième paramètre Typename est le nom complet de l'interface d'écoute.

Chaque auditeur doit être enregistré sur la fonction diffuseur de LibreOffice. Ceci est effectué en liant chaque écouteur à son objet associé. Les méthodes de liaison suivent toujours le modèle 'addFooListener', où 'Foo' est le type d'objet de l'interface d'écoute, sans le 'X'. Dans cet exemple, la méthode addContainerListener est appelée pour enregistrer le XContainerListener :

    Dim oLib As Object
    oLib = BasicLibraries.Library1 ' Library1 doit exister !
    oLib.addContainerListener( oListener ) ' Enregistrer l'auditeur

L'auditeur est maintenant enregistré. Lorsqu'un événement se produit, l'écouteur actif appelle la méthode appropriée définie dans l'interface com.sun.star.container.XContainerListener.

Les sous-programmes BASIC enregistrés pilotés par événement nécessitent l'utilisation de Prefix défini. Le système d'exécution BASIC recherche les sous-programmes ou les fonctions portant le nom 'Prefix+ListenerMethod' et les appelle lorsqu'ils sont trouvés. Sinon, une erreur d'exécution se produit.

Dans cet exemple, l'interface com.sun.star.container.XContainerListener définit les méthodes suivantes :

méthode | description
--- | ---
disposing | Interface de base pour toutes les interfaces d'écoute com.sun.star.lang.XEventListener
elementInserted | Méthode de l'interface com.sun.star.container.XContainerListener
elementRemoved | Méthode de l'interface com.sun.star.container.XContainerListener
elementReplaced | Méthode de l'interface com.sun.star.container.XContainerListener

'ContListener_' utilisé dans cet exemple implique que les sous-programmes suivants doivent être implémentés en BASIC :

- ContListener_disposing

- ContListener_elementInserted

- ContListener_elementRemoved

- ContListener_elementReplaced

Chaque interface d'écoute définit un ensemble de noms d'événements contrôlés associés aux objets Uno. Lorsqu'un événement se produit, il est envoyé à la méthode en tant que paramètre. Les méthodes d'événement BASIC peuvent également s'appeler, tant que le paramètre approprié est passé dans la déclaration Sub. Par exemple :

    Sub ContListener_disposing( oEvent As com.sun.star.lang.EventObject )
        MsgBox "disposing"
    End Sub

    Sub ContListener_elementInserted( oEvent As com.sun.star.container.ContainerEvent )
        MsgBox oEvent.Source.' "elementInserted"
    End Sub

    Sub ContListener_elementRemoved( oEvent As com.sun.star.container.ContainerEvent )
        MsgBox "elementRemoved"
    End Sub

    Sub ContListener_elementReplaced( oEvent As com.sun.star.container.ContainerEvent )
        MsgBox "elementReplaced"
    End Sub

Pas besoin d'inclure le paramètre d'objet d'événement lorsqu'il n'est pas utilisé :

    ' Implémentation minimale de Sub disposing
    Sub ContListener_disposing
    End Sub

Les méthodes d'écoute doivent toujours être implémentées pour éviter les erreurs d'exécution BASIC.

Utilisez la console de la bibliothèque ScriptForge lorsque l'IDE BASIC n'est pas facilement accessible, c'est-à-dire pendant le traitement des événements. Utilisez la méthode DebugPrint pour ajouter toute information pertinente à la console. Les entrées de la console peuvent être vidées dans un fichier texte ou visualisées dans une fenêtre de dialogue. Utilisez le module Trace de la bibliothèque Access2Base comme alternative.

       Sub SF_Trace
          GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
          svc = CreateScriptService("ScriptForge.Exception")
          svc.Console modal:=False
          svc.DebugPrint("Lorem", "Ipsum", "...")
       End Sub ' SF_Trace

       Sub A2B_Trace
          GlobalScope.BasicLibraries.LoadLibrary("Access2Base")
          Access2Base.Trace.DebugPrint("Lorem", "Ipsum", "...")
          Access2Base.Trace.TraceConsole()
       End Sub ' A2B_Trace

Rubriques connexes

Créer des auditeurs (Listeners) d'événements

Mappage d'événements sur des objets

Voir aussi Événements de documents, Événements de formulaire.

Création d'un gestionnaire de boîtes de dialogue

Écouter les événements de document