Evenement et objet

eficad Messages postés 2 Date d'inscription vendredi 5 septembre 2003 Statut Membre Dernière intervention 30 septembre 2004 - 30 sept. 2004 à 23:52
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 - 1 oct. 2004 à 00:02
Slt,

j'aurais savoir si quelqu'un pouvais m'aider a trouver une solution au pb suivant:

Je voudrais récuperer les evenements d'une liste d'objet dans un objet:

J'ai une collection de text Box,sur ma feuille et un module de class .Dans mon module je peux declarer une textbox et recuperer son evenement en une utilisant la declaration suivante

dim withevents textBox2 as textbox

Par contre ,je ne sais pas comment faire pour récupérer l'evenement sur une des textbox de ma collection.

voila ,si quelqu'un a une solution et veux bien me sortir de l'ignorance

1 réponse

cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
1 oct. 2004 à 00:02
Salut,

Voici ce que dit la MSDN :

Event, instruction, exemple
L'exemple suivant utilise des événements pour chronométrer en secondes une démonstration du 100 mètres le plus rapide. Le code illustre toutes les méthodes, propriétés et instructions relatives aux événements, y compris l'instruction Event.

La classe qui déclenche un événement est la source de celui-ci, alors que les classes qui l'implémentent sont les récepteurs. Une source d'événement peut avoir plusieurs récepteurs pour les événements qu'elle génère. Après génération par une classe, l'événement est déclenché pour chaque classe réceptrice des événements pour cette instance de l'objet.

L'exemple utilise aussi une feuille (Form1) contenant un bouton (Command1), une étiquette (Label1) et deux zones de texte (Text1 et Text2). Lorsque vous cliquez sur le bouton, la première zone de texte affiche "Départ" et la seconde commence le chronométrage. Une fois le temps total (9,84 secondes) écoulé, la première zone de texte affiche "Arrivée", la seconde "9,84".

Le code correspondant à Form1 indique les états initial et final de la feuille. Elle contient aussi le code exécuté au déclenchement des événements.

Option Explicit

Private WithEvents mText As TimerState

Private Sub Command1_Click()
Text1.Text = "Départ"
    Text1.Refresh
    Text2.Text = "0"
    Text2.Refresh
Call mText.TimerTask(9.84)
End Sub

Private Sub Form_Load()
    Command1.Caption = "Cliquez pour lancer la minuterie "
    Text1.Text = ""
    Text2.Text = ""
    Label1.Caption = "Le meilleur temps du 100 mètres est de :"
    Set mText = New TimerState
    End Sub

Private Sub mText_ChangeText()
    Text1.Text = "Arrivée"
    Text2.Text = "9,84"
End Sub

Private Sub mText_UpdateTime(ByVal dblJump As Double)
    Text2.Text = Str(Format(dblJump, "0"))
    DoEvents
End Sub

Le code restant se trouve dans un module de classe appelé TimerState. Les instructions Event déclarent les procédures lancées lorsque les événements sont déclenchés.

Option Explicit
Public Event UpdateTime(ByVal dblJump As Double)
Public Event ChangeText()

Public Sub TimerTask(ByVal Duration As Double)
    Dim dblStart As Double
    Dim dblSecond As Double
    Dim dblSoFar As Double
    dblStart = Timer
    dblSoFar = dblStart
    
    Do While Timer < dblStart + Duration
        If Timer - dblSoFar >= 1 Then
            dblSoFar = dblSoFar + 1
            RaiseEvent UpdateTime(Timer - dblStart)
        End If
    Loop
    
    RaiseEvent ChangeText
    
End Sub


Chris...
Firstruner
0
Rejoignez-nous