IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Démarrer timer sur evenement (ex:fin d'un autre timer)


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Homme Profil pro
    automaticien
    Inscrit en
    Juillet 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : automaticien

    Informations forums :
    Inscription : Juillet 2014
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Démarrer timer sur evenement (ex:fin d'un autre timer)
    Bonjour à tous,
    Y a t-il moyen de demarrer un timer lors de la fin d'un autre timer.
    Merci à tous.

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    Timer.Enabled = True pour le démarrer, si mes souvenirs sont bon
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    Avec 2 Timers, l'un en court(Timer1) l'autre(Timer2) en arrêt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Timer2.Enabled = Not Timer1.Enabled
    Timer1.Enabled = False ' Arrêt du 1er donc mettre le 2ème en marche
    L'ordre des instructions peut varier et / ou être inversé selon l'endroit où on les place.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  4. #4
    Candidat au Club
    Homme Profil pro
    automaticien
    Inscrit en
    Juillet 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : automaticien

    Informations forums :
    Inscription : Juillet 2014
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    y a t-il d'autre code à ajouter car lorsque je met le premier timer en marche voila ce que cela me dit "object variable or with bloc variable not set"
    je met Merci beaucoup

  5. #5
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    cela me dit "object variable or with bloc variable not set" je met timer1.enabled=true.
    A quelle ligne le problème se pose-t-il ?
    As-tu placé 2 Timers sur la Form ?(Timer1 et Timer2)
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  6. #6
    Candidat au Club
    Homme Profil pro
    automaticien
    Inscrit en
    Juillet 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : automaticien

    Informations forums :
    Inscription : Juillet 2014
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    non je n'ai pas mis de timer1 et 2 sur la form par contre je declare
    dans les generales
    pour l'instant j'essai de faire demarrer le premier timer.

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    bonjour,

    si tu débute en VB6 le mieux est que tu place tes 2 timer sur ta form .. et supprime tes lignes dim timer...

  8. #8
    Candidat au Club
    Homme Profil pro
    automaticien
    Inscrit en
    Juillet 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : automaticien

    Informations forums :
    Inscription : Juillet 2014
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    ok, c'est ce que j'ai fait.je n'ai plus l'erreur. Maintenant j'essai d'effectuer du code lorsque le timer est fini.mais cela ne marche pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Timer1.Enabled = True
    If Timer1 = False Then
    Picture1.Line (0, 0)-Step(300, 1000), , BF

  9. #9
    Candidat au Club
    Homme Profil pro
    automaticien
    Inscrit en
    Juillet 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : automaticien

    Informations forums :
    Inscription : Juillet 2014
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    ok maintenant j'ai ecrit le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub Timer1_Timer()
    Picture1.Line (0, 0)-Step(300, 1000), , BF
    Timer2.Enabled = True
    End Sub
     
    Private Sub Timer2_Timer()
    Picture1.Line (500, 0)-Step(300, 1000), , BF
    End Sub
    dites moi si je me trompe lorsque le timer1 est fini je dessine et je lance le timer2 et lorsque le timer2 est fini je dessine.
    seulement dans l'état je dessine les deux rectangle à la fin du timer1.
    que faire.

  10. #10
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    il faut que tu définisse l'état initial l'état initial des propriété enabled et interval de tes deux timer, soit par le code soit dans l'éditeur de ta Form fenêtre propriété de tes 2 timers...

  11. #11
    Candidat au Club
    Homme Profil pro
    automaticien
    Inscrit en
    Juillet 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : automaticien

    Informations forums :
    Inscription : Juillet 2014
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    voilà j'ai reussi la chose suivante demarrer le timer2 à la fin du timer1 en ajoutant une ligne timer2.enabled=false lors du demarrage du timer1 pour interdire le demarrage du timer2. si j'ai bien tout compris. voici mon code.
    en fait je voudrais simuler les feu tricolore d'un carrefour.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    Private Sub Picture1_Paint()
    Picture1.Line (6000, 0)-Step(0, 3800)
    Picture1.Line (0, 3800)-Step(6000, 0)
    Picture1.Line (0, 4750)-Step(6000, 0)
    Picture1.Line (6000, 4750)-Step(0, 6000)
    Picture1.Line (6950, 4750)-Step(0, 6000)
    Picture1.Line (6950, 4750)-Step(7000, 0)
    Picture1.Line (6950, 3800)-Step(7000, 0)
    Picture1.Line (6950, 0)-Step(0, 3800)
    Picture1.Line (5500, 2500)-Step(300, 1000), , BF
    Picture1.Line (4500, 5000)-Step(1000, 300), , BF
    Picture1.Line (7200, 5000)-Step(300, 1000), , BF
    Picture1.Line (7200, 3300)-Step(1000, 300), , BF
    Timer2.Enabled = False
    End Sub
     
    Private Sub Timer1_Timer()
    Picture1.Line (0, 0)-Step(300, 1000), , BF
    Timer2.Enabled = True
    End Sub
     
    Private Sub Timer2_Timer()
    Picture1.Line (500, 0)-Step(300, 1000), , BF
    End Sub
    à noter les rectangles a la fin des timer c'est pour l'essai des timers.

  12. #12
    Membre éprouvé Avatar de DAUDET78
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2008
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 634
    Points : 1 161
    Points
    1 161
    Par défaut
    Tu prends un seul timer (par exemple 60 secondes avec timer 100mS et décompteur par 600 toutes les 100mS)
    Tu le lances avec le feu jaune allumé
    - Passage à 550 extinction jaune et allumage rouge
    - Passage à 300 extinction rouge et allumage Vert
    - Passage à 000 extinction Vert , allumage jaune et rechargement du décompteur par 600
    Tu as la séquence 5 secondes jaune, 25 secondes rouge et 30 secondes vert
    Il faut 3 variables globales
    Tempo%=600
    TempoJaune%=550
    Temporouge%=300

  13. #13
    Membre éprouvé Avatar de DAUDET78
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2008
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 634
    Points : 1 161
    Points
    1 161
    Par défaut
    Un programme de ce genre (non testé !)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    ' variable global
    Tempo%
    TempoTotale% ' 600
    TempoJaune% ' 550
    TempoRouge% ' 300  
     
    Private Sub Timer1_Timer()
     
    Tempo% = Tempo% - 1
    select case
       case 0
           jaune=1 : Vert=0
           Tempo%=TempoTotale%
       case <= TempoRouge%
           rouge=0 : Vert=1
       case <= Tempojaune%
           rouge=1 : jaune=0       
    End Select
    End Sub

  14. #14
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 197
    Points
    17 197
    Par défaut
    Salut

    Une autre approche:
    Sur ton Form tu poses, 1 Timer, 1 CommandButton, 1 CheckBox, 1 PictureBox (sans changer leurs noms)
    DANS ton Picture1, tu poses 3 Shapes que tu renommes ShapeRouge, ShapeOrange et ShapeVert
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    Option Explicit
    Dim FinRouge As Integer, FinOrange As Integer, FinVert As Integer, Npassage As Integer
     
    Private Sub Form_Load()
    '---------------- partie pouvant être fait directement à la construction ----------------------
    Timer1.Enabled = False
    Timer1.Interval = 1000 ' tempo de 1 Sc
     
    Command1.Move 420, 120, 1395, 315 'placement et dimensionnement
    Command1.Caption = "Go"
     
    Check1.Move 1920, 120, 255, 255
    Check1.Value = 1 ' coché (Checked)
    Check1.ToolTipText = "Non coché, 1 seul cycle" 'rempli l'info bulle
     
    Picture1.Move 780, 540, 615, 1815
    Picture1.Appearance = 0 'Flat (cadre fin)
    Picture1.BackColor = &H4040& ' couleur du fond (vert très foncé)
     
    ShapeRouge.Move 60, 90, 465, 465
    ShapeRouge.Shape = 3 ' Circle
    ShapeRouge.BackStyle = 1 ' Opaque
    ShapeRouge.BackColor = &H5F& ' rouge très foncé
     
    ShapeOrange.Move 60, 645, 465, 465
    ShapeOrange.Shape = 3
    ShapeOrange.BackStyle = 1
    ShapeOrange.BackColor = &H2298& ' orange très foncé
     
    ShapeVert.Move 60, 1215, 465, 465
    ShapeVert.Shape = 3
    ShapeVert.BackStyle = 1
    ShapeVert.BackColor = &H2D00& ' Vert très foncé
    '---------------- Fin partie pouvant être fait directement à la construction ----------------------
    FinVert = 3 ' 3 Sc
    FinOrange = 4 ' 4-3 = 1 Sc
    FinRouge = 7 ' 7-4 = 3 Sc
    End Sub
     
    Private Sub Command1_Click()
    If Command1.Caption = "Go" Then
        Command1.Caption = "Arreter"
        Npassage = 0
        ShapeVert.BackColor = &HFF00& ' vert claire pour allumer
        Timer1.Enabled = True 'demare le timer
        Else
        Timer1.Enabled = False 'arret du timer
        Command1.Caption = "Go"
        ShapeRouge.BackColor = &H5F& ' rouge très foncé
        ShapeOrange.BackColor = &H2298& ' orange très foncé
        ShapeVert.BackColor = &H2D00& ' Vert très foncé
    End If
    End Sub
     
    Private Sub Timer1_Timer()
    Npassage = Npassage + 1
    Select Case Npassage
     
        Case FinVert
            ShapeVert.BackColor = &H2D00& ' Vert très foncé pour éteindre
            ShapeOrange.BackColor = &H80FF& ' orange claire pour allumer
     
        Case FinOrange
            ShapeOrange.BackColor = &H2298& ' orange très foncé pour éteindre
            ShapeRouge.BackColor = &HFF& ' rouge claire pour allumer
     
        Case FinRouge
            ShapeRouge.BackColor = &H5F& ' rouge très foncé pour éteindre
            If Check1.Value = 0 Then 'ne pas continuer le cycle
                Timer1.Enabled = False 'arrete le timer
                Command1.Caption = "Go"
                Else ' reprendre/continer le cycle
                Npassage = 0
                ShapeVert.BackColor = &HFF00& ' vert claire pour allumer
            End If
     
    End Select
    End Sub
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  15. #15
    Membre éprouvé Avatar de DAUDET78
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2008
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 634
    Points : 1 161
    Points
    1 161
    Par défaut
    C'est un truc comme ça que tu veux faire ?
    Feurouge.zip
    Attention il faudrait rajouter des limitations de sécurité ( valeur min/max des tempos, caractères non numériques etc)

  16. #16
    Membre éprouvé Avatar de DAUDET78
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2008
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 634
    Points : 1 161
    Points
    1 161
    Par défaut
    Pour fêter le premier mensiversaire de l'absence d’intérêt de notre ami olivier62232 pour le sujet , je me suis amusé à faire un programme un peu plus complet disponible ICI : http://www.developpez.net/forums/d14...s/#post7944329

Discussions similaires

  1. retourner un evenement Timer sur un thread principal
    Par LudoNet dans le forum Framework .NET
    Réponses: 1
    Dernier message: 28/11/2012, 09h48
  2. Probleme ListBox sur evenement Tick du Timer
    Par MadCat34 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 12/01/2007, 16h28
  3. Pb sur evenement onclick
    Par megapacman dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 22/06/2006, 10h13
  4. Impossible de démarrer mySql sur mon ordi
    Par tarzanjane dans le forum Installation
    Réponses: 12
    Dernier message: 05/03/2006, 17h01
  5. Pb sur evenement notinlist
    Par kabikou dans le forum Access
    Réponses: 13
    Dernier message: 20/09/2005, 16h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo