cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 2013
-
18 sept. 2007 à 12:43
cs_andrebernard
Messages postés404Date d'inscriptionlundi 9 juin 2003StatutMembreDernière intervention 4 septembre 2013
-
18 sept. 2007 à 17:39
Bonjour à tous
Je voudrais utiliser un timer pour faire clignoter un controle.
Seulement le probleme, c'est que je ne comprend pas, comment transmetre à la sub le nom du controle que je voudrais qui clignote, sans mettre ce nom en PUBLIC
Etant donné que le timer est une SUB, je ne peut pas l'incorporer dans une autre.
Comment faire pour lui transmettre le nom du controle qui est dans un groupe de controle ?
Car ce qui est dessous ne marche pas :
Public Sub Timer1_Timer(Controle as Object)
num = num + 1 If num <10 Then Controle.Visible Not (Controle.Visible)
End Sub
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 18 sept. 2007 à 16:57
salut,
j'vois pas trop l'intérêt de vouloir absolument se passer d'une variable en (Déclarations) (Général), ou en public mais bon...
voici une possibilité, il y en a beaucoup d'autres...
' 1 groupe de X boutons,
par défaut
' 1 timer, par défaut
Option Explicit
Private mMyObject As Object 'objet PRIVé
' PROPRIéTé AVEC
GESTION NOTHING + RESTAURATION VISIBILITé
Public Property Get MyObject() As Object
Set MyObject = mMyObject
End Property
Public Property Let MyObject(nValue As Object)
If Not mMyObject Is Nothing Then mMyObject.Visible = True
Set mMyObject = nValue
End Property
'INIT
Private Sub Form_Load()
Me.MyObject = Nothing
Timer1.Interval = 200
End Sub
Private Sub Form_Unload(Cancel As Integer)
Me.MyObject = Nothing
Timer1.Enabled = False
End Sub
'
CLICK
Private Sub Command1_Click(Index As Integer)
Me.MyObject = Command1(Index)
End Sub
'
TIMER
Private Sub Timer1_Timer()
If Not (Me.MyObject Is Nothing) Then Me.MyObject.Visible = Not (Me.MyObject.Visible)
End Sub
++
PCPT [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
GEDDi
Messages postés206Date d'inscriptionlundi 22 novembre 1999StatutMembreDernière intervention 3 juillet 2008 18 sept. 2007 à 14:14
Bonjour,
Si tu es sous VB tu peux utiliser la propriété 'Tag' de ta Form qui peut contenir du texte.
Ce texte représente le nom de ton controle par exemple 'Command1'
Apres dans ta sub
Private Sub Timer1_Timer()
Dim o As Control
Dim szName As String
szName = Me.Tag '// là où tu as stocké le nom du contôle que tu veux cacher/afficher
For Each MyControl In Controls
If MyControl.Name = "CommandButton2" Then
MyControl.Visible = Not MyControl.Visible
End If
Next
End Sub
Puis dans ta Formx tu mets ceci :
Me.Tag = "CommandButton2"
Ceci aura pour effet de rechercher un controle "CommandButton2" et de le planquer ou afficher à chaque tour dans ton timer :)