Ciao Bart,

Il mercoledì 4 giugno 2008 14:02:40 Bart Aimar ha scritto:
> Ciao a tutti,
>
> si era già parlato in passato di questo utile amenicolo... io ho provato
> ad usarlo perché (all'apparenza) sembrava il più maneggevole fra le
> soluzioni papabili... ma continua a darmi problemi.
>
> Se uso questo codice:
>
> Global  oProgressBar
>
> Sub Barra_apri
>    oProgressBar = _
>       ThisComponent.CurrentController.Frame.CreateStatusIndicator
>      oProgressBar.Start("",100)'
>      oProgressBar.Value = 100
>      oProgressBar.Text = "Attendi pazientemente!"
> End sub
>
> 'Creo un oggetto... che riesco a chiudere con:
>
> Sub Barra_Chiudi
>       oProgressBar.End
> end sub
>
>
> Ma all'interno di codice complesso (diciamo pure un po' confuso) questo
> oggetto si perde e "barra_chiudi" non lo chiude!

Questo è il problema vero da risolvere: L'oggetto non si dovrebbe perdere


> Per riprodurre la situazione è sufficiente eseguire 2 volte di seguito
> Barra_apri...

Ok il motivo della "perdita" è chiaro: quando crei un secondo StatusIndicator 
e lo assegni alla variabile global il primo non è più recuperabile.

Devi semplicemente assicurarti che l'oggetto StatusIndicator non venga creato 
per più di una volta.
Lo crei solo la prima volta e poi lo riutilizzi.


> Con xray non riesco ad indagare l'oggetto oProgressBar

e perchè mai?



>
> Non trovo il modo di verificare se esiste/non esiste, se la variabile
> (che dovrebbe contenerlo ??) sia vuota o piena...

Usa la funzione IsNull() per controllare se la variabile oggetto contiene già 
un riferimento valido.

If IsNull(oProgressBar) Then
  oProgressBar = _
     ThisComponent.CurrentController.Frame.CreateStatusIndicator
End If


> E, in ogni caso, c'è modo di azzerarla ?

Cosa vuol dire "azzerare" una variabile oggetto?

Ti ricordo che una variabile oggetto è un riferimento, un puntatore, non 
un "contenitore"
Ad esempio potresti avere più variabili object che si riferiscono ad una 
stessa istanza di un oggetto.

Detto questo, vuoi "azzerare" la variabile o l'oggetto vero e proprio? 
E comunque a mio parere si tratta di una domanda oziosa, perchè non dovresti 
aver bisogno di "azzerare" oggetti e se questo accade, dovresti piuttosto 
ripensare a come hai organizzato il codice.


ciao
Paolo M

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Rispondere a