Rechercher : dans
Par :

TIMER sous Visual Basic 6.0

Dernière réponse le 4 mar 2009 à 15:02:15 Ma, le 16 jui 2004 à 10:32:30 
 Signaler ce message aux modérateurs

Je débute avec VB et je voudrais savoir comment insérer une pasue dans le code. C'est à dire pour que le programme développé attende un moment avant de continuer l'execution de son code. Pourriez vous m'expliquer comment se servir des Timers ?
D'avance merci.

Meilleures réponses pour « TIMER sous Visual Basic 6.0 » dans :
Télécharger Visual Basic 6 Runtime (VB6 DLL) Voir Le Runtime Visual Basic 6 contient l'ensemble des librairies (DLL) nécessaires pour exécuter des programmes écrits en langage Visual Basic 6.0. Il contient notamment les DLL suivantes :...
Introduction à Visual Basic VoirPrésentation de Visual Basic Visual Basic est un outil développé par Microsoft pour développer facilement des applications fonctionnant sous Microsoft Windows ©. Visual Basic est, comme son nom l'indique, un outil visuel permettant de créer...

1

blurk, le 16 jui 2004 à 11:00:33
  • +5

Salut
le timer se trouve dans les composants. On clique dessus et on
fait glisser sur la feuille comme tous les composants
Le timer a deux réglages : enabled/disabled et periode ou frequence.
Le timer emet des impulsions à la fréquence voulue
Si j'ai bonne mémoire, c'est de 5 millisecondes à 1 seconde
Un double clic sur l'icône du timer fait apparaître
la fonction ontimer qui est une des méthodes de l'objet timer
là est éxécuté le code que l'on choisit à chaque impulsion
qu'émet le timer à la fréquence voulue et seulement si il est "enabled"
Si le délai de 5 millisecondes est trop long, on peut mettre plusieurs timers, mais si c'est windows98 ou 95 on est très vite limité en performances. Le timer est une bonne solution parmi d'autres pour que l'interface ne soit pas bloquée pendant que s'excécute une long traitement.
rtfm cordialement
¤

Répondre à blurk

2

Ma, le 16 jui 2004 à 11:08:10

Ok merci !
Qd on ouvre un programme, il y a toujours une boite avec un intitulé, le nom du produit, la version, la license,... qui s'ouvre en premier. Je voudrais que dans mon programme, cette boite s'ouvre (ca c'est bon) mais qu'elle reste affichée à l'ecran 5 secondes par exemple (la elle s'affiche et disparait tout de suite). Comment peut on choisir ce temps ?
D'avance encore merci !
Ma.

Répondre à Ma

3

Psykocrash, le 16 jui 2004 à 23:40:15
  • +1

Quand ta fenetre s'ouvre, tu lance un timer avec pour interval 5000 (équivalent à 5 secondes) avec pour fonction de fermer ta fenetre.

Répondre à Psykocrash

8

 tomatefarcie, le 4 mar 2009 à 15:02:15
  • +1

Ds l'onglet splashscreen.vb (nom par default)tu rajoutes



'déclaration de sleep()
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)


Me.Show()
Application.DoEvents()
'5000 pour 5 secondes
Sleep(5000)

Répondre à tomatefarcie

4

must41, le 18 jui 2004 à 21:22:45

Voila un pti truc tu met l'inteval du timer a 0 et lorsque tu veux tu declancher le chrono tu affecte a interval une autre valeur par exemple 1000 = 1 seconde et dans
private sub timer_timer ... end sub
tu met un compteur i = i+1 lorsque le "i" atteint la valeur que tu veux pas exemple 10 tu affecte a interval une autre fois zero
interval = 0 'arrete le compteur et intervel <>0 le declanche

Répondre à must41

5

Ma, le 19 jui 2004 à 08:09:02

Je vous remercie grandement pour votre aide, tout fonctionne comme je le voulais et je pense avoir compris comment fonctionnaient les timers. Grace à vous.
Merci.

Ma.

Répondre à Ma

6

DVPB, le 30 jan 2008 à 11:18:24

Bonjour,
je débute sous VB et aimerais moi aussi utiliser un timer pour réaliser une action répétitive.
Je voudrais en fait que le timer soit activé/désactivé par un bouton de sorte que:
-tant que le bouton est actif, le timer doit exécuter la même action (en réalité deux: exécution d'une requête SQL, puis concaténation du résultat dans un fichier csv préexistant), puis recommencer un décompte de 30 secondes, exécuter la requête, ajouter son résultat au fichier, recommencer le décompte etc.
-si le bouton est désactivé, le timer s'arrête après avoir exécuté l'action à laquelle il est lié.

concrètement, je sèche sur la manière de m'y prendre pour programmer un timer de la sorte et pour ce qui concerne la concaténation de données à un fichier préexistant.

Je remercie d'avance tous ceux/celles qui auront un peu de temps pour m'aider à résoudre ce problème.

Répondre à DVPB

7

Polux31, le 30 jan 2008 à 12:26:02
  • +3

Bonjour,

Dans le module de ton formulaire, tu déclares une variable générale booléenne (ex: Private flagTimer As Boolean), ainsi que cette fonction :

Private Declare Function GetTickCount Lib "kernel32" () As Long
Public Sub xWait(ByVal MilsecToWait As Long)
    Dim lngEndingTime As Long
  
    lngEndingTime = GetTickCount() + (MilsecToWait)
    Do While GetTickCount() < lngEndingTime
        DoEvents
    Loop
End Sub


Dans le Form_Load du formulaire, tu initialises ton flag à false (ex: flagTimer = False). Ensuite, sur l'évènement Click de ton bouton du colles ça:

Private Sub Command1_Click()
    
    If flagTimer = False Then
        flagTimer = True
    ElseIf flagTimer = True Then
        flagTimer = False
    End If
    
    Call Timer1_Timer
    
End Sub


Il ne reste plus qu'à coder la procédure du Timer en utilisant une boucle while :

Private Sub Timer1_Timer()

    While flagTimer = True
        '1 - code pour la requête SQL
        '2 - code pour le fichier
        Call xWait(3000)
    Wend
    
End Sub


Bon courage

;o)

polux

Répondre à Polux31