Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ng
Salut, Voici un exemple :
Private Sub Form_Load() Call FrameEnabled(False) End Sub
Public Sub FrameEnabled(ByVal bEnabled As Boolean) On Error Resume Next Dim oOb As Object For Each oOb In Me If oOb.Container Is Frame1 Then oOb.Enabled = bEnabled End If Next End Sub
-- Nicolas. http://www.ngsoft-fr.com "Duric" a écrit dans le message de news:
Voici ce que j'essaie de faire sans succès:
Private Sub Check1_Click() Call SetAllChildObject( Frame1, IIF(Check1.value=0,False,True) ) End Sub
Private Sub SetAllChildObject(objColl As Object, flag As Boolean) Dim obj As Object
For Each obj In objColl '---> Erreur 438 obj.enabled = flag Next obj End Sub
Comment faire pour que objColl soit considéré comme une collection d'objet? Merci par avance pour vos éclaircicements !
Salut,
Voici un exemple :
Private Sub Form_Load()
Call FrameEnabled(False)
End Sub
Public Sub FrameEnabled(ByVal bEnabled As Boolean)
On Error Resume Next
Dim oOb As Object
For Each oOb In Me
If oOb.Container Is Frame1 Then
oOb.Enabled = bEnabled
End If
Next
End Sub
--
Nicolas.
http://www.ngsoft-fr.com
"Duric" <duricFAKEMAIL@yahoo.com> a écrit dans le message de news:
qhpovv4rpvdjgfccu0pmmgrgtdfuvg88s0@4ax.com...
Voici ce que j'essaie de faire sans succès:
Private Sub Check1_Click()
Call SetAllChildObject( Frame1, IIF(Check1.value=0,False,True) )
End Sub
Private Sub SetAllChildObject(objColl As Object, flag As Boolean)
Dim obj As Object
For Each obj In objColl '---> Erreur 438
obj.enabled = flag
Next obj
End Sub
Comment faire pour que objColl soit considéré comme une collection
d'objet?
Merci par avance pour vos éclaircicements !
Private Sub Form_Load() Call FrameEnabled(False) End Sub
Public Sub FrameEnabled(ByVal bEnabled As Boolean) On Error Resume Next Dim oOb As Object For Each oOb In Me If oOb.Container Is Frame1 Then oOb.Enabled = bEnabled End If Next End Sub
-- Nicolas. http://www.ngsoft-fr.com "Duric" a écrit dans le message de news:
Voici ce que j'essaie de faire sans succès:
Private Sub Check1_Click() Call SetAllChildObject( Frame1, IIF(Check1.value=0,False,True) ) End Sub
Private Sub SetAllChildObject(objColl As Object, flag As Boolean) Dim obj As Object
For Each obj In objColl '---> Erreur 438 obj.enabled = flag Next obj End Sub
Comment faire pour que objColl soit considéré comme une collection d'objet? Merci par avance pour vos éclaircicements !
Duric
On Wed, 7 Jan 2004 21:51:13 +0100, "ng" wrote:
Salut, Voici un exemple :
Private Sub Form_Load() Call FrameEnabled(False) End Sub
Public Sub FrameEnabled(ByVal bEnabled As Boolean) On Error Resume Next Dim oOb As Object For Each oOb In Me If oOb.Container Is Frame1 Then oOb.Enabled = bEnabled End If Next End Sub
Merci Nicolas, exactement ce qu'il me fallait (Je ne l'avais pas vu dans ce sens là ) Juste une petite remarque; FrameEnabled ne prend en compte que les objets directement reliés à lui (pas les objets contenus ds d'autres objets). Voici donc ma petite modif en récursif: on balaye jusque qu'à la racine (au Form).
Private Sub CK_CropDetect_Click() Call SetAllObjectEnabled(Frame, _ IIf(Frame.Value = 0, False, True)) End Sub
Private Sub SetAllObjectEnabled(ByRef objRef As Object, enabled As Boolean) Dim objColl As Object On Error Resume Next For Each objColl In Me If checkRecursivContainer(objColl, objRef) = 1 Then objColl.enabled = enabled End If Next objColl End Sub
Private Function checkRecursivContainer(objColl2 As Object, objRef2 As Object) As Byte 'Return: 1-> objColl2 dans objRef2 ' 2-> objcoll2 en Dehors de objRef2 et Form atteind On Error Resume Next checkRecursivContainer = 0 Do If objColl2.Container Is objRef2 Then checkRecursivContainer = 1 Else If TypeOf objColl2 Is Form = True Or _ TypeOf objColl2.Container Is Form = True Then '1er Objet de la hierarchie checkRecursivContainer = 2 Exit Do '1er Objet de la hierarchie atteint End If checkRecursivContainer checkRecursivContainer(objColl2.Container, objRef2) End If Loop Until checkRecursivContainer > 0 End Function
On Wed, 7 Jan 2004 21:51:13 +0100, "ng" <ng@babeuk.net> wrote:
Salut,
Voici un exemple :
Private Sub Form_Load()
Call FrameEnabled(False)
End Sub
Public Sub FrameEnabled(ByVal bEnabled As Boolean)
On Error Resume Next
Dim oOb As Object
For Each oOb In Me
If oOb.Container Is Frame1 Then
oOb.Enabled = bEnabled
End If
Next
End Sub
Merci Nicolas,
exactement ce qu'il me fallait (Je ne l'avais pas vu dans ce sens là )
Juste une petite remarque; FrameEnabled ne prend en compte que les
objets directement reliés à lui (pas les objets contenus ds d'autres
objets).
Voici donc ma petite modif en récursif: on balaye jusque qu'à la
racine (au Form).
Private Sub CK_CropDetect_Click()
Call SetAllObjectEnabled(Frame, _
IIf(Frame.Value = 0, False, True))
End Sub
Private Sub SetAllObjectEnabled(ByRef objRef As Object, enabled As
Boolean)
Dim objColl As Object
On Error Resume Next
For Each objColl In Me
If checkRecursivContainer(objColl, objRef) = 1 Then
objColl.enabled = enabled
End If
Next objColl
End Sub
Private Function checkRecursivContainer(objColl2 As Object, objRef2 As
Object) As Byte
'Return: 1-> objColl2 dans objRef2
' 2-> objcoll2 en Dehors de objRef2 et Form atteind
On Error Resume Next
checkRecursivContainer = 0
Do
If objColl2.Container Is objRef2 Then
checkRecursivContainer = 1
Else
If TypeOf objColl2 Is Form = True Or _
TypeOf objColl2.Container Is Form = True Then
'1er Objet de la hierarchie
checkRecursivContainer = 2
Exit Do '1er Objet de la hierarchie atteint
End If
checkRecursivContainer checkRecursivContainer(objColl2.Container, objRef2)
End If
Loop Until checkRecursivContainer > 0
End Function
Private Sub Form_Load() Call FrameEnabled(False) End Sub
Public Sub FrameEnabled(ByVal bEnabled As Boolean) On Error Resume Next Dim oOb As Object For Each oOb In Me If oOb.Container Is Frame1 Then oOb.Enabled = bEnabled End If Next End Sub
Merci Nicolas, exactement ce qu'il me fallait (Je ne l'avais pas vu dans ce sens là ) Juste une petite remarque; FrameEnabled ne prend en compte que les objets directement reliés à lui (pas les objets contenus ds d'autres objets). Voici donc ma petite modif en récursif: on balaye jusque qu'à la racine (au Form).
Private Sub CK_CropDetect_Click() Call SetAllObjectEnabled(Frame, _ IIf(Frame.Value = 0, False, True)) End Sub
Private Sub SetAllObjectEnabled(ByRef objRef As Object, enabled As Boolean) Dim objColl As Object On Error Resume Next For Each objColl In Me If checkRecursivContainer(objColl, objRef) = 1 Then objColl.enabled = enabled End If Next objColl End Sub
Private Function checkRecursivContainer(objColl2 As Object, objRef2 As Object) As Byte 'Return: 1-> objColl2 dans objRef2 ' 2-> objcoll2 en Dehors de objRef2 et Form atteind On Error Resume Next checkRecursivContainer = 0 Do If objColl2.Container Is objRef2 Then checkRecursivContainer = 1 Else If TypeOf objColl2 Is Form = True Or _ TypeOf objColl2.Container Is Form = True Then '1er Objet de la hierarchie checkRecursivContainer = 2 Exit Do '1er Objet de la hierarchie atteint End If checkRecursivContainer checkRecursivContainer(objColl2.Container, objRef2) End If Loop Until checkRecursivContainer > 0 End Function