Non è che viene tolto 2 volte.
Le due routine "done" e "aborted" vengono eseguite una sola volta:
per intenderci, o una o l'altra, ma mai tutte e due.
Questo l'avevo capito.
Con due volte mi riferivo nelle due "done" e "aborted" (prima volta) e
nella sub principale (seconda volta)
Comunque come non avessi detto niente, adesso funziona...
Stranamente prima se toglievo la rimozione del listener o nelle
"done"/"aborted" o nella sub principale mi ripeteva due o più volte il
msgbox, adesso ha smesso di comportarsi stranamente e funziona alla
perfezione...quasi sicuramente avevo fatto qualcosa di sbagliato io.
La cosa più probabile che mi viene in mente è che abbia eseguito il
codice nuovo dopo che avevo eseguito quello vecchio nella stessa istanza
di soffice e la variabile globale mi ha giocato qualche brutto
scherzo... :-(
Chiedo venia. :-)
Ho provato a rimuovere quelli contenuti in "oDocView_done" e
"oDocView_aborted", ma in tal caso mi ripete 2 volte il messaggio con
l'indirizzo.
in effetti con la nuova versione del codice non servirebbe più, dato che le
pulizie vengono effettuate all'inizio della routine TestSelectionListener
solo che ho dimenticato di togliere queste istruzioni.
Infatti se le si lasciano dove sono la rimozione nella sub principale
non avviene mai.
E' un problema/feature del listener RangeSelection oppure è qualcosa che
può presentarsi anche con altri listener?
[...]
Si e no.
Tutto dipende dal caso specifico.
Come per molte cose.
Comunque la domanda non aveva ragione d'essere poichè derivata da un mio
errore.
[...]
In genere invece faccio semplicemente:
----------------------
...
If IsNull(listener) Then
listener = CreateUnoListener("prefix_","bla.bla.XListener")
End If
oDocView.addBlaBlaListener(listener)
...
...
----------------------
Altra mia curiosità: se il listener esiste già perchè lo ri-aggiungi?
Non sarebbe sufficiente:
If IsNull(listener) Then
listener = CreateUnoListener("prefix_","bla.bla.XListener")
oDocView.addBlaBlaListener(listener)
End If
Scusa se ora ti tempesto, ma siccome li sto usando anch'io (un po'
empiricamente: ho capito il concetto, ma non tutte le implicazioni...)
vorrei evitare cose troppo sbagliate....o troppe cose sbagliate, a
seconda dei casi. :-)
In questo caso però mi ero accorto che lanciando la macro da IDE il listener
smetteva di funzionare correttamente e non si poteva riutilizzarlo.
[...]
Magari tornerò alla carica su IZ appena ho un po di tempo per fare delle
prove.
A me sembra funzionare correttamente, ma siccome tu lo conosci
sicuramente molto meglio di me non mi dilungo oltre (io mi son sempre
limitato ad usarli per automatizzare controlli vari in finestre di dialogo).
Come vedi le tecniche per gestire "l'esistenza in vita" degli oggetti possono
variare a seconda delle circostanze... :-)
In questo caso ho fatto una piccola 'variazione sul tema' per evitare di
incappare in un (possibile) piccolo bug
Non posso far altro che ringraziarti per le tue esaurienti spiegazioni e
per la tua pazienza nel sopportarmi!
Ciao!
Emanuele.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]