Temporisation

Résolu
zazsze Messages postés 54 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 15 août 2007 - 11 août 2007 à 20:17
zazsze Messages postés 54 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 15 août 2007 - 13 août 2007 à 12:44
Bonsoir,
Est-il possible qu'en cliquant sur un button de commande de faire apparaitre une textbox que pendant 5 secondes par exemple ?
merci
zazsze

16 réponses

zazsze Messages postés 54 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 15 août 2007
13 août 2007 à 12:44
Bonjour,
Ca fonctionne avec la méthode de NHENRY

merci à vous deux
zazsze
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
11 août 2007 à 20:36
Bonjour

Oui, dans un ton bouton tu active un timer réglé sur 5 sec et tu affiche ton txtbx,
Puis dans ton timer tu désactive celui-ci puis tu masque ta txtbx.

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
11 août 2007 à 20:58
salut

Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Form_Load()
    Text1.Visible = False
End Sub

Private Sub Command1_Click()
    Text1.Visible = True
    DoEvents
    Call Sleep(5000) 'sera visible et gèlera
l'appli
    Text1.Visible = False
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
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
11 août 2007 à 20:59
oups, en DotNet?
il doit bien y avoir qqc dans le framework pour se passer de l'API. sinon la déclarer en integer

++
0

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

Posez votre question
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
11 août 2007 à 21:02
Bonjour

Sleep : System.Threading.Thread.sleep(...)

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
11 août 2007 à 21:03
merci
0
zazsze Messages postés 54 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 15 août 2007
11 août 2007 à 21:53
Etant débutant, je n'ai pas tout compris
Quelle modification dois-je faire dans le code écrit par PCPT
zazsze
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
11 août 2007 à 22:37
Bonjour
Question, Quand ta txtbx est affichée, doit-tu pouvoir modifier son contenu ?

Oui, Ma méthode est à utiliser
Non, la méthodfe de PCPT est à utiliser.

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
zazsze Messages postés 54 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 15 août 2007
12 août 2007 à 08:39
Bonjour,
Pour répondre à ta question, je n'ai pas besoin que mon texte soit modifié.
Mais avec la méthode de PCPT, il me dit que DoEvents n'est pas déclaré.
Voilà ce que j'ai écrit :
Option

Explicit
On
Public
Class Form1

         Private
Declare
Sub Sleep
Lib
"kernel32" (
ByVal dwMilliseconds
As
Long)

         Private
Sub Form1_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load
                 TextBox1.Visible =
False
         End
Sub

         Private
Sub Command1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Command1.Click
                  TextBox1.Visible =
True
                  DoEvents()

                  Call Sleep(5000)

                  TextBox1.Visible =
False
         End
Sub
End
Class

Encore merci pour ton aide
zazsze
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
12 août 2007 à 10:15
Bonjour

Application.DoEvents()

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
12 août 2007 à 11:45
si tu passes par l'API, tu la déclare comme çà :
Private Declare Sub Sleep Lib"kernel32" (ByVal dwMilliseconds As Integer)

mais en DotNet il faut préférer l'utilisation du framework plutôt que les API.
donc pas d'API, et :

         Private Sub Command1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Command1.Click
                  TextBox1.Visible = True
                  Application.DoEvents()

                  System.Threading.Thread.sleep( 5000)'pas certain pour les parenthèses...
                  TextBox1.Visible = False
         End Sub

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
12 août 2007 à 11:52
Bonjour

En .NET c'est là que c'est plus clair qu'avec VB6 PCPT, on met toujours les parenthèses.

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
12 août 2007 à 12:20
2e merci, je retiendrai
0
zazsze Messages postés 54 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 15 août 2007
12 août 2007 à 13:11
Bonjour,
Le code ci-dessous fonctionne bien, mais il bloque completement le reste l'application.
Je ne peux plus écrire dans les autres textbox ou encore cliquer sur les boutons de commande de mon appplication pendant le temps donné à l'apparition de ma textbox1 (soit 5 seondes dans ce cas de figure)
Comment faire pour que toutes mes commandes ou zone de texte soit accessible à tout momment

Option
Explicit
On
Public
Class Form1

         Private
Declare
Sub Sleep
Lib
"kernel32" (
ByVal dwMilliseconds
As Interger)

         Private
Sub Form1_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load
                 TextBox1.Visible =
False
         End
Sub

         Private
Sub Command1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Command1.Click
                  TextBox1.Visible =
True
                  DoEvents()

                  Call Sleep(5000)

                  TextBox1.Visible =
False
         End
Sub
End
Class

Merci d'avance
zazsze
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
12 août 2007 à 13:18
Bonjour

Utilise la méthode du Timer comme je te l'ai conseillé.

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
12 août 2007 à 13:20
comme on te l'a indiqué, sleep gèle l'application.
je l'ai indiqué en commentaire, et NHenry t'a demandé et indiqué les choix à faire selon si oui ou non tu avais besoin de garder la main

dans quel cas, timer

(ps : çà marche oui. mais faut pas juste que çà marche)
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
Rejoignez-nous