Temporisation [Résolu]

Signaler
Messages postés
54
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
15 août 2007
-
Messages postés
54
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
15 août 2007
-
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

Messages postés
54
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
15 août 2007

Bonjour,
Ca fonctionne avec la méthode de NHENRY

merci à vous deux
zazsze
Messages postés
14757
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2021
151
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
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
39
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
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
39
oups, en DotNet?
il doit bien y avoir qqc dans le framework pour se passer de l'API. sinon la déclarer en integer

++
Messages postés
14757
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2021
151
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
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
39
merci
Messages postés
54
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
15 août 2007

Etant débutant, je n'ai pas tout compris
Quelle modification dois-je faire dans le code écrit par PCPT
zazsze
Messages postés
14757
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2021
151
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
Messages postés
54
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
15 août 2007

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
Messages postés
14757
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2021
151
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
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
39
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
Messages postés
14757
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2021
151
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
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
39
2e merci, je retiendrai
Messages postés
54
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
15 août 2007

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
Messages postés
14757
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2021
151
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
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
39
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