IBM Lotus Symphony


Função CreateUnoListener [Runtime]

Cria uma ocorrência de Escuta.

Muitas interfaces Uno permitem o registo de escutas numa interface de escuta especial. 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 objecto que esta suporta. Este objecto é, então, transferido para o método para registar a escuta.

Sintaxe:

oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )

Exemplo:

O seguinte exemplo baseia-se num objecto 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 da escuta que pretende utilizar.

A Escuta terá, então, de ser adicionada ao Broadcaster Object. Isto é feito através do método apropriado para adicionar uma escuta. Estes métodos seguem sempre o padrão "addFooListener", em que "Foo" corresponde ao tipo de interface da Escuta, sem o 'X'. Neste exemplo, o método addContainerListener é chamado para registar o XContainerListener:

Dim oLib

oLib = BasicLibraries.Library1 ' Library1 tem de existir!

oLib.addContainerListener( oListener ) ' Registar a Escuta

A Escuta está agora registada. Quando ocorre um evento, a Escuta correspondente chama o método apropriado a partir da interface com.sun.star.container.XContainerListener.

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

Neste exemplo, a interface de escuta faz uso dos seguintes métodos:

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

Existe um tipo de estrutura que contém informações acerca de um evento para cada tipo de Escuta. Quando é chamado um método de Escuta, é transferida uma instância-objecto deste evento para o método como um parâmetro. Os métodos de Escuta do Basic também podem invocar estes objectos 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 objecto de evento, se o objecto não for utilizado:

' Implementação mínima da eliminação da Sub

Sub ContListener_disposing

End Sub

ícone de Aviso Os métodos de escuta têm sempre de ser implementados para evitar erros de tempo de execução do Basic.

Comentários sobre o produto | Documentação adicional | Marcas comerciais