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]