Utiliser le timer comme reference [Résolu]

nourhanan
Messages postés
26
Date d'inscription
samedi 16 décembre 2000
Dernière intervention
21 novembre 2009
- 28 nov. 2008 à 12:38 - Dernière réponse : nourhanan
Messages postés
26
Date d'inscription
samedi 16 décembre 2000
Dernière intervention
21 novembre 2009
- 29 nov. 2008 à 10:39
Bonjour

je veux creer un programme qui va utiliser le timer comme reference mais lors de l'execution il me donne l'erreur suivant "variable objet ou variable bloc with non définie "
voici  code utilisé:

Dim WithEvents t As Timer
Dim i As Integer
Private Sub Form_Load()
i = 0
t.Enabled = True
t.Interval = 1000


End Sub


Private Sub t_Timer()
i = i + 1
Me.Text1.Text = i
End Sub
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
nourhanan
Messages postés
26
Date d'inscription
samedi 16 décembre 2000
Dernière intervention
21 novembre 2009
- 29 nov. 2008 à 10:39
3
Merci
Bonjour

Bravo et merci à PCPT mon probleme est resolu grace à vous .

Merci nourhanan 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de nourhanan
cs_Jack
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
- 28 nov. 2008 à 12:46
0
Merci
Salut
En VB6, il n'est pas possible (difficile) d'ajouter des composants s'ils n'ont pas au moins un exemplaire sur la forme.
Il te faut donc placer graphiquement l'objet Timer (qu'on appellera monTimer) sur ta forme.
Si tu as besoin de plusieurs de ces objets en mode Run, il te suffit de l'indexer (mettre son Index à 0), puis, dans le code, de faire un
   Load monTimer(1)

Pour info, un Timer réglé à 1000 mSec ne garantit pas la précision.
Le déclenchement peut être retardé selon la charge de la machine.
Si tu as besoin de précision, il te faut t'orienter vers des APIs qui rechercheront l'heure exacte du système, basé sur la fréquence du CPU
Il y a plusieurs exemples parmi les codes VB6 sur le site (cherche "timer précision" dans la Recherche)

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

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
nourhanan
Messages postés
26
Date d'inscription
samedi 16 décembre 2000
Dernière intervention
21 novembre 2009
- 28 nov. 2008 à 13:33
0
Merci
en fait, à des besoins specifiques je dois travailler avec timer comme reference et non pas l'objet timer y a til une autre solution  
Commenter la réponse de nourhanan
Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 28 nov. 2008 à 13:56
0
Merci
pas très clair, ta question ....

quel est ton besoin final ?
Commenter la réponse de Renfield
jmenfous
Messages postés
117
Date d'inscription
mardi 21 janvier 2003
Dernière intervention
2 juillet 2009
- 28 nov. 2008 à 14:01
0
Merci
Il existe une solution simple qu'on oublie bien souvant : faire un accesseur.

Donc tu créés une méthode qui te donne accès à un timer private et qui si il n'existe pas l'instancier pour toi

Jérémy Jeanson
MCP
Commenter la réponse de jmenfous
Kevin.Ory
Messages postés
843
Date d'inscription
mercredi 22 octobre 2003
Dernière intervention
7 janvier 2009
- 29 nov. 2008 à 01:20
0
Merci
Salut,
Sans du tout vouloir contredire ce qui à été dit avant, et venant du monde DotNetien (VB.NET), j'aurais a priori dit qu'il manque un "new" :
Dim WithEvents t As New Timer
Bon, ça n'a surement rien à voir, mais je le dis quand même...
Commenter la réponse de Kevin.Ory
PCPT
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 29 nov. 2008 à 02:44
0
Merci
salut
,



[../auteur/KEVINORY/183467.aspx Kevin.Ory]

-> bien tenté mais non, çà ne marche pas comme çà en VB6 ^^
(pour le coup on aurait même un message d'erreur, impossible de mettre NEW avec WITHEVENTS, justement parce qu'on doit avoir un contrôle "existant" pour recevoir (puis re-transmettre) ses évènements

ici si la demande est de ne pas poser de contrôle en mode édition, il faut tout de même le faire par code, pas le choix

çà donnerait :






Option Explicit


Dim WithEvents 

As 
Timer 
'déclaration évènements


'


'


Private Sub 
Form_Load()

    Set t = Me.Controls.Add("VB.Timer", "t") 'création timer
    t.Enabled = True
    t.Interval = 1000
End Sub
Private Sub Form_Unload(Cancel As Integer)
    t.Enabled = False
    Set t = Nothing
End Sub
'
Private Sub t_Timer()
    Static i As Long
    i = i + 1
    Text1.Text = CStr(i)
End Sub





<small>
[../code.aspx?ID=39466 Coloration VB6, VBA,
VBS]
</small>






mais pour être honnête, l'intérêt sur une form est rarement (jamais?) existant....
++

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
Commenter la réponse de PCPT

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.