OVH Cloud OVH Cloud

Vérifier si un objet est chargé ?

3 réponses
Avatar
Via
Bonjour à tous.

Je charge et décharge plusieurs fois une Form lors de l'exécution d'une
application, et dans cette Form je charge et décharge des objets.
Il arrive un moment où je ne sais plus ce qui est chargé ou non, et j'ai
un objet avec l'index 0 qui est déchargé (pas moyen de savoir où !!!!) Cela
pose évidemment problème. J'aimerais faire une vérification pour charger
l'objet s'il ne l'est pas, du genre :

If Not <objet chargé> Then
Load Objet(index)
End If

Est-ce possible ?
Merci d'avance,

Via :)

3 réponses

Avatar
Zoury
Salut Via! :O)

Le plus simple est de capter l'erreur..

'***
Private Function InControlArray(ByRef o As Object) As Boolean
Dim i As Integer
On Error Resume Next
i = o.Index
InControlArray = (Err.Number <> 343 And Err.Number <> 340)
End Function
'***

l'erreur 343 se déclenche si le control passé en paramètre n'est pas dans un
tableau de contrôle (ex: Text1) et l'erreur 340 se déclenche si l'index
spécifié est hors borne..

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous

"Via" wrote in message
news:
Bonjour à tous.

Je charge et décharge plusieurs fois une Form lors de l'exécution d'une
application, et dans cette Form je charge et décharge des objets.
Il arrive un moment où je ne sais plus ce qui est chargé ou non, et j'ai
un objet avec l'index 0 qui est déchargé (pas moyen de savoir où !!!!)


Cela
pose évidemment problème. J'aimerais faire une vérification pour charger
l'objet s'il ne l'est pas, du genre :

If Not <objet chargé> Then
Load Objet(index)
End If

Est-ce possible ?
Merci d'avance,

Via :)




Avatar
Ludovic SOEUR
Tu peux utiliser le mot clef IS avec NOTHING
if <objet chargé> IS NOTHING then
Load Objet(index)
endif

"Via" a écrit dans le message de news:

Bonjour à tous.

Je charge et décharge plusieurs fois une Form lors de l'exécution d'une
application, et dans cette Form je charge et décharge des objets.
Il arrive un moment où je ne sais plus ce qui est chargé ou non, et j'ai
un objet avec l'index 0 qui est déchargé (pas moyen de savoir où !!!!)


Cela
pose évidemment problème. J'aimerais faire une vérification pour charger
l'objet s'il ne l'est pas, du genre :

If Not <objet chargé> Then
Load Objet(index)
End If

Est-ce possible ?
Merci d'avance,

Via :)




Avatar
Via
Merci Yanick !
Etonnament, rien que le fait de vérifier au Form_Load la présence du
contrôle fait qu'il ne détecte plus jamais son absence. M'enfin, le
principal c'est que je n'ai plus ce bug.

Via :)


"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:%
Salut Via! :O)

Le plus simple est de capter l'erreur..

'***
Private Function InControlArray(ByRef o As Object) As Boolean
Dim i As Integer
On Error Resume Next
i = o.Index
InControlArray = (Err.Number <> 343 And Err.Number <> 340)
End Function
'***

l'erreur 343 se déclenche si le control passé en paramètre n'est pas dans


un
tableau de contrôle (ex: Text1) et l'erreur 340 se déclenche si l'index
spécifié est hors borne..

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous

"Via" wrote in message
news:
> Bonjour à tous.
>
> Je charge et décharge plusieurs fois une Form lors de l'exécution


d'une
> application, et dans cette Form je charge et décharge des objets.
> Il arrive un moment où je ne sais plus ce qui est chargé ou non, et


j'ai
> un objet avec l'index 0 qui est déchargé (pas moyen de savoir où !!!!)
Cela
> pose évidemment problème. J'aimerais faire une vérification pour charger
> l'objet s'il ne l'est pas, du genre :
>
> If Not <objet chargé> Then
> Load Objet(index)
> End If
>
> Est-ce possible ?
> Merci d'avance,
>
> Via :)
>
>