L'objet invoqué s'est déconnecté de ses clients. 80010108

Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
- - Dernière réponse : JazzLiberator
Messages postés
3
Date d'inscription
mercredi 22 février 2012
Statut
Membre
Dernière intervention
22 février 2012
- 19 mars 2012 à 13:49
Bonjour,

VB m'affiche une erreur Automation dans mon code.
J'ai pu le reproduire dans cette maquette de UserControl :

Public Property Let BackColor(Color As Long)
    UserControl.BackColor = Color
End Property

Private Sub UserControl_InitProperties()
    Dim Obj As Object
    Randomize
    Dim Color As Long: Color = Val(Rnd * vbWhite)
    For Each Obj In UserControl.ParentControls
        If TypeOf Obj Is UserControl1 Then
            Obj.BackColor = Color
        End If
    Next Obj
End Sub


A chaque ajout d'un UserControl1 dans une Form, tous les UserControl1 présent changent de couleur. Simpliste, mais ca met en oeuvre ParentControls

au bout de 30 controles, j'ai l'erreur n°80010108

"L'objet invoqué s'est déconnecté de ses clients. "

j'ai demandé à gogole, mais rien de bien concluant...
je me tourne donc vers vous...

Amusez-vous ! ;)
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
4531
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
5
1
Merci
Le code suivant marche sans probleme voici un lien vers ton bug je pense qu'il est deconseiller d'utiliser ParentControls surtout que Obj.Parent est disponible sur tout les Control Container donc a premiere vue on garde une bonne compatibilité

http://support.microsoft.com/kb/q223104/

Option Explicit

Public Property Let BackColor(ByVal Color As Long)
    UserControl.BackColor = Color
End Property

Private Sub UserControl_InitProperties()
    Dim Obj As Object
    Randomize
    Dim Color As Long: Color = Val(Rnd * vbWhite)
    'On Error Resume Next 'Facultatif
    For Each Obj In UserControl.Parent.Controls
        If TypeOf Obj Is UserControl1 Then
            Obj.BackColor = Color
        End If
    Next Obj
End Sub


@+ Cowboy ;)

E.B.

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 6039 internautes nous ont dit merci ce mois-ci

Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57
0
Merci
Tout simplement....

me trompais pas en t'appelant a la rescousse ;-)

Merci

Amusez-vous ! ;)
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS
Messages postés
3251
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
16 octobre 2019
46
0
Merci
salut

tu as touvé le post au grenier
2004
Messages postés
3
Date d'inscription
mercredi 22 février 2012
Statut
Membre
Dernière intervention
22 février 2012
0
Merci
Salut ShayW eh oui comme quoi on trouve des trésors dans nos greniers de temps en temps
Messages postés
3
Date d'inscription
mercredi 22 février 2012
Statut
Membre
Dernière intervention
22 février 2012
-1
Merci
Salut,

Juste pour ajouter mon eau au moulin je viens d'avoir exactement cette erreur dans un de mes control UpDown qui incrémentait/décrémentait un nombre dans une textbox.

L'erreur était provoquée par le "plantage" du composant UpDown car à un moment donné, pendant l'exécution, la valeur de la textbox était hors bornes min/max du control UpDown (je précise aussi que j'ai lié le UpDown à la textbox via les propriétés BuddyControl et BuddyProperty)

J'ai résolu le problème en initialisant d'abord min/max à leurs valeurs la plus petite/grande avant de toucher a la valeur contenue dans la textbox.
C'est impressionnant comme erreur mais le bug derrière est souvent anodin à mon avis.

Bon courage.

PS: Hein déjà 2012, mais le temps passe trop vite