G__D
Messages postés18Date d'inscriptionmercredi 13 juin 2007StatutMembreDernière intervention13 mai 2008
-
28 août 2007 à 15:00
G__D
Messages postés18Date d'inscriptionmercredi 13 juin 2007StatutMembreDernière intervention13 mai 2008
-
28 août 2007 à 16:53
Bonjour,
Mon soucis est le suivant.
Je cherche un moyen de savoir si un objet est dans une frame.
C'est un dire un truc du style
If MonObjet is in frame1 then
Vous allez me dire on peut faire
if MonObjet.container.name = "frame1" then
Sauf que le parent de premier niveau n'est pas forcément la frame1.
Par exemple, MonObjet est dans la frame4, qui est dans la PictureBox2, qui est dans la frame1.
Je veut savoir que mon objet est dans la frame1.
Une idée svp ???
Kristof_Koder
Messages postés918Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention27 octobre 200810 28 août 2007 à 15:29
Function IsInFrame(byval Obj As Control,byval fraName As String) As Boolean
If Obj.Container.Name = fraName then ' Si l'objet est dans la frame voulue
IsInFrame = True ' On renvoie True
ElseIf Not Obj.Container Is nothing Then ' Sinon si le container à un container
IsinFrame = IsInFrame(Obj.Container,fraName) ' On teste si le container est dans la frame voulue
Else ' Sinon (on est tout en bas de l'arborescence)
IsInFrame = False ' L'objet n'ets pas dans la frame voulue
End If
End Function
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 28 août 2007 à 15:18
Salut,
Fait une fonction récursive qui parcours tout les conteneurs possible de la feuille en regardantsi l'objet y est contenu.
de cette maniere tu pourras obtenir une sorte de chemin pour accéder à ton objet.
G__D
Messages postés18Date d'inscriptionmercredi 13 juin 2007StatutMembreDernière intervention13 mai 2008 28 août 2007 à 15:31
Ouais, j'y ai pensé, mais le problème est que çà risque d'être long si je dois balayer les conteneurs à chaque fois...
Surtout qu'il faut arriver à monobjet.container.container.container.container.container = frame1
Pas très joli..
J'espérai vraiment un MonObjet is in frame1... snif...
G__D
Messages postés18Date d'inscriptionmercredi 13 juin 2007StatutMembreDernière intervention13 mai 2008 28 août 2007 à 16:53
Je crois que ca y est ...
' Function Récursive qui renvoie true si l'obejt est dans le conteneur, sinon false
Public Function bIsInContainer(ByVal poObjet As Object, ByVal poConteneur As Object) As Boolean
On Error GoTo gestionerreur
If poObjet.Container.hwnd = poConteneur.hwnd Then ' Si l'objet est dans la frame voulue
bIsInContainer = True ' On renvoie True
Else
bIsInContainer = bIsInContainer(poObjet.Container, poConteneur) ' On teste si le container est dans la frame voulue
End If
Exit Function
gestionerreur:
bIsInContainer = False
End Function