Função CreateUnoListener

Cria uma instância de Ouvinte.

Muitas interfaces Uno permitem o registo de ouvintes numa interface especial para ouvintes. Isto permite ouvir eventos específicos e definir o método de escuta apropriado. A função CreateUnoListener espera pela interface de escuta chamada e, então, transfere para a interface um objeto que esta permita. Este objeto é, então, transferido para o método para registar o ouvinte.

Sintaxe:

oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )

Exemplo:

O seguinte exemplo baseia-se num objeto da biblioteca do Basic.


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

O método CreateUnoListener requer dois parâmetros. O primeiro é um prefixo e é explicado em detalhe mais abaixo. O segundo parâmetro é o nome totalmente qualificado da interface do ouvinte que pretende utilizar.

O ouvinte terá, então, de ser adicionado ao objeto emissor. Este processo é efetuado através do método apropriado para adicionar um Ouvinte. Estes métodos seguem sempre o padrão "addFooListener", no qual "Foo" é o tipo de interface do Ouvinte, sem o 'X'. Neste exemplo, o método addContainerListener é chamado para registar o XContainerListener:


Dim oLib
oLib = BasicLibraries.Library1 ' Library1 deve existir!
oLib.addContainerListener( oListener ) ' Registar o ouvinte

O ouvinte está agora registado. Quando ocorre um evento, o Ouvinte correspondente chama o método apropriado a partir da interface com.sun.star.container.XContainerListener.

O prefixo chama Ouvintes registados a partir de sub-rotina em Basic. O sistema de tempo de execução do Basic procura sub-rotina ou funções do Basic que tenham o nome "PrefixListenerMethode" e chama-as quando as encontra. Caso contrário, ocorre um erro em tempo de execução.

Neste exemplo, a interface do ouvinte utiliza os seguintes métodos:

Neste exemplo, o prefixo é ContListener_. Assim, as seguintes sub-rotinas terão de ser implementadas no Basic:

Um tipo de estrutura de eventos que contém informações sobre um evento para cada tipo de Ouvinte. Quando é chamado um método de Ouvinte, é transferida uma instância-objeto deste evento para o método como um parâmetro. Os métodos do Ouvinte do Basic também podem chamar estes objetos de evento, desde que o parâmetro adequado seja transferido na declaração Sub. Por exemplo:


Sub ContListener_disposing( oEvent )
    MsgBox "disposing"
    MsgBox oEvent.Dbg_Properties
End Sub
 
Sub ContListener_elementInserted( oEvent )
    MsgBox "elementInserted"
    MsgBox oEvent.Dbg_Properties
End Sub
 
Sub ContListener_elementRemoved( oEvent )
    MsgBox "elementRemoved"
    MsgBox oEvent.Dbg_Properties
End Sub
 
Sub ContListener_elementReplaced( oEvent )
    MsgBox "elementReplaced"
    MsgBox oEvent.Dbg_Properties
End Sub

Não é necessário incluir o parâmetro de um objeto de evento, se o objeto não for utilizado:


' Implementação mínima da eliminação da Sub
Sub ContListener_disposing
End Sub
Ícone de aviso

Os métodos do ouvinte devem estar sempre implementados para evitar erros em tempo de execução no Basic.


Necessitamos da sua ajuda!