Séparer deux actions dans un meme private sub de quelques secondes

Lunick90 - 7 sept. 2012 à 23:47
cs_djamel2010 Messages postés 3 Date d'inscription mercredi 6 janvier 2010 Statut Membre Dernière intervention 21 mars 2013 - 7 nov. 2012 à 20:24
Bonsoir,
J'ai un soucis dans la programmation de mon code !
Voici ce que je veux faire et ma question viendra ensuite :
je souhaite cocher et decocher une serie de checkbox avec entre chaque "(dé)cochage" un laps de temps de quelques secondes. J'arrive a cocher et decocher mais pas a mettre mon attente ! Donc ma question est : comment faire pour que je puisse executer mon code avec entre deux actions un laps de temps ?
Si vous avez des solutions ou des pistes de reflexions pour que je puisse faire ceci...
Merci par avance
bonne soirée
Cordialement
Lunick90

12 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
8 sept. 2012 à 01:27
Bonjour,

Threadding.thread.Sleep
Et
DoEvents

Il faut voir ce que tu veux faire avec ces actions, il y a peut être plus simple.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 sept. 2012 à 03:11
Salut

Non, VB6.
Si, pendant cette pause, ton programme n'a rien à faire, tu peux utiliser l'API "Sleep" : Ton programme restera figé pendant x mSec
Déclaration :
Private Declare Sub Sleep Lib "kernel32" ( _
                 ByVal dwMilliseconds As Long)
Utilisation :
Call Sleep(2000) ' pour 2 secondes

Si tu as besoin de continuer à faire d'autres choses pendant ce laps de temps et que tu n'as pas besoin d'une grosse précision (de durée), tu peux utiliser la propriété Timer (pas l'objet).
Cette propriété te renvoie le nombre de secondes écoulées depuis minuit. Avec un petite boucle :
    Dim gStart As Single
    gStart = Timer
    Do While (Timer - gStart) < 2
        DoEvents
    Loop

Sinon, tu peux aussi mettre un objet Timer, réglé sur 2000 mSec et le rendre Enabled pour le démarrer.
Dans le code du Timer, donc quand les 2 secondes seront écoulées, tu positionnes une variable Booléenne à True + Enabled False du Timer.
Bien sûr, la variable Booléenne devra être déclarée dans "Déclaration" de la page de code de la forme (si la fonction est dans un module, mettre la variable en Public dans "Déclaration" du module).
Là aussi une petite boucle d'attente :
    maVarBool = False
    monTimer.Enabled = True
    Do While Not maVarBool
        DoEvents
    Loop

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
bonjour,
merci de votre aide.
voici ce que je veux faire :
v_Lamp.v_Value = v_Lamp.v_Value + 2 ^ v_Lamp.Item(2).v_num
v_Lamp.Item(2).v_Status = True
ListLampes.SetItemCheckState(2, CheckState.Checked)
'attente de 10s -> help !
v_Lamp.v_Value = v_Lamp.v_Value + 2 ^ v_Lamp.Item(4).v_num
v_Lamp.Item(4).v_Status = True
ListLampes.SetItemCheckState(4, CheckState.Checked)
'attente de 5s -> help !
...
et ainsi de suite sur une serie de plusieurs checkbox et faire de meme pour "decocher". donc une fois le meilleur moyen trouve, il n'y aura plus que du copier coller a faire (en changeant les durée).
merci par avance
bonne journee
cordialement
Lunick90
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
8 sept. 2012 à 08:27
Bonjour,
Tu as ouvert cette discussion dans la section :

Forum > Visual Basic 6

alors que tu ne développes pas sous VB6 !
Conséquence ? ===>> tu as fait perdre son temps à jack, qui s'est "foulé" pour te renseigner assez complètement en ce qui concerne VB6 !
Tu mesures l'importance d'être très attentif et précis en ce qui concerne ce choix de section ?
Relis maintenant la réponse de NHenry !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bonjour,
alors autant pour moi si je me suis trompe de section !
on m'a dit que c'etait du vb6 et comme je ne connais pas la difference entre toutes les versions de vb, je me suis fié a ce qu'on m'as dit !
pour etre moins bete et faire "perdre du temps" aux bonnes personnes, qu'elle est la version de mon vb ?
je suis desole pour ceux qui m'ont aidé dans le vent...
cordialement
Lunick90
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
8 sept. 2012 à 10:05
Cela semble être du VB.Net


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
8 sept. 2012 à 12:28
Bonjour,

Lunick90, peux-tu donner le nom du programme d'édition pour lever le doute ?
Visual Studio 2002, Visual Studio 2003, Visual Studio 2005, Visual Studio 2008, Visual Studio 2010, Visual Studio 2012 -> VB.NET
Visual Basic 6 -> VB6
Excel, Word, ... -> VBA

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
le programme d'édition est visual basic express 2010.
quel est donc le langage de developpemnt ? vb.net ? vb 6 ? autre ?
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
8 sept. 2012 à 15:24
Bonjour,

Tu es donc en .NET, regardes donc mon premier message du sujet.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
dans ce cas la, comment se sert on de ces deux instructions ?
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
8 sept. 2012 à 18:49
Bonjour,

Tu peux regarder dans la doc (MSDN), tout est dit concernant leur utilisation.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
cs_djamel2010 Messages postés 3 Date d'inscription mercredi 6 janvier 2010 Statut Membre Dernière intervention 21 mars 2013
7 nov. 2012 à 20:24
salut
je prefere utiliser la fonction Xwait au lieu de sleep qui bloque toute action(control) du programme pendant le temps donné
0
Rejoignez-nous