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.NET Discussion :

enchainer deux fonctions avec une tempo [Débutant]


Sujet :

VB.NET

  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut enchainer deux fonctions avec une tempo
    Bonjour tout le monde
    Voici quelque chose qui me pose difficulté alors qu'a priori, cela ne le devrais pas
    J'ai dans une appli, un formulaire dont le fonctionnement s'articule de la facon suivante :
    Ouverture du formulaire ==> clic sur button1 ==> Execution d'une fonction retournant une valeur A ==> affichage dans le formulaire ==> clic sur button2 ==> Execution d'une fonction retournant une valeur B ==> affichage dans le formulaire
    La sub affichage est la même a chaque fois.

    Je voudrais supprimer un bouton pour automatiser un peu le procedure et arriver a ce shema :
    Ouverture du formulaire ==> clic sur button1 ==> Execution d'une fonction retournant une valeur A ==> affichage dans le formulaire ==> temporisation de 3 secondes ==> Execution d'une fonction retournant une valeur B ==> affichage dans le formulaire

    Donc tout faire via un button et laisser l'affichage quelques secondes entre l'execution des 2 fonctions.

    J'ai essaye avec un timer mais je ne comprends pas, cela ne fonctionne pas.
    Est ce la bonne methode ? existe t'il quelque chose de plus approprié ?
    Merci de votre aide

  2. #2
    Membre éclairé Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Points : 801
    Points
    801
    Par défaut
    Peut être du coté des threads

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub ExecuteMainFunction() Handles Button1.Click
     
        ExecuteFunction1()
     
        Thread.Sleep(3000)     'Freeze l'application 3 sec car thread principal
     
        ExecuteFunction2()
     
    End Sub
    L'inconvénient c'est que l'appli fait dodo pendant les 3 secs...
    J’ai des questions à toutes vos réponses!

  3. #3
    Invité
    Invité(e)
    Par défaut
    Essaye ça pour ton timer, ca doit doit pouvoir résoudre ton probleme


    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
     System.Timers.Timer timer = null;
        public void demarrerTimer(int p_iDuree)
        {
            timer = new System.Timers.Timer();
            timer.Interval = p_iDuree;
            timer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimedEvent);
            timer.Start(); 
        }
     
        private static void OnTimedEvent(object source, System.Timers.ElapsedEventArgs e)
        {
            System.Timers.Timer timer = (System.Timers.Timer)(source);
            timer.Stop();
            // Action a rélaiser lorsque le timer c'est déclenché    
        }

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    le thread.sleep c'est sale ^^

    un timer est en effet la solution, tu le poses sur le form qui devra lancer la fonction2, tu règles interval à 3000

    ensuite si le form qui exécute fonction 1 et le même que celui qui exécute fonction2, à la fin du code du bouton1 tu fais montimer.start
    si par contre c'est un form2 que tu ouvres à la fin de bouton1, il faut que sur le form_load de form2 tu fasses timer.start

    ensuite sur l'event tick du timer tu fais timer.stop et fonction2
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre éclairé Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Points : 801
    Points
    801
    Par défaut
    Oui je suis d'accord (j'aurais du me taire )

    un timer est en effet la solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim t As New Timer
            t.Interval = 3000
            AddHandler t.Tick, AddressOf Timer_Tick
     
            MsgBox("plop")
            t.Enabled = True
        End Sub
     
        Private Sub Timer_Tick(sender As Object, e As EventArgs)
            Dim t As Timer = sender
            t.Enabled = False
            MsgBox("plap")
        End Sub

    Ca revient au même que le code C# que gcorbineau à écrit
    J’ai des questions à toutes vos réponses!

  6. #6
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    merci bien, Je me suis peut être un peu raté dans les timer.start et timer stop.
    ensuite si le form qui exécute fonction 1 et le même que celui qui exécute fonction2, à la fin du code du bouton1 tu fais montimer.start
    si par contre c'est un form2 que tu ouvres à la fin de bouton1, il faut que sur le form_load de form2 tu fasses timer.start
    En fait c'est les 2 le button1 ouvre le form2 et et le onload du form2execute la fonction 1, puis la fonction 2 apres 3 secondes
    Je reteste

  7. #7
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    arf ca fonctionne impeccablement, c'etait effectivement une erreur de timer start.
    encore merci

    Edit : Par contre ca ne fonctionne pas si je veux par exemple faire
    button1 ==> fonction1 ==> 5 Secondes ==> Fonction2 ===> 5 Secondes ==> fonction3

    J'ai essaye avec 2 timer, un a 5 secondes et l'autre a 10s
    onload du form
    Timer1.Start()
    Timer2.Start()

    timer1_tick
    stop timer1
    fonction2

    timer1_tick
    stop timer2
    fonction3

    encore un souci de timer stop ou start ?

  8. #8
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    euh honte a moi, j'avais effacé un bout de déclaration de la sub sans faire exprès. Évidemment ça marche moins bien
    résolu donc et merci a tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. utiliser deux formulaire avec une seule action
    Par fouyou dans le forum Struts 1
    Réponses: 4
    Dernier message: 28/05/2007, 20h40
  2. Faire defiler deux listes avec une scroll bar
    Par mcdelay dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/05/2007, 14h54
  3. Créer une fonction avec une variable
    Par Ricou13 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 22/01/2007, 23h51
  4. Afficher une fonction avec une autre
    Par renaud26 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 28/08/2006, 14h29
  5. comparer deux fichiers avec une api windows
    Par sweetdreamer dans le forum Windows
    Réponses: 4
    Dernier message: 25/05/2006, 22h10

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