L'objet invoqué s'est déconnecté de ses clients. 80010108
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
21 oct. 2004 à 13:38
JazzLiberator
Messages postés3Date d'inscriptionmercredi 22 février 2012StatutMembreDernière intervention22 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...
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 21 oct. 2004 à 20:16
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é
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
JazzLiberator
Messages postés3Date d'inscriptionmercredi 22 février 2012StatutMembreDernière intervention22 février 2012 6 mars 2012 à 18:05
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.