Utiliser le timer comme reference

Résolu
nourhanan Messages postés 26 Date d'inscription samedi 16 décembre 2000 Statut Membre Dernière intervention 21 novembre 2009 - 28 nov. 2008 à 12:38
nourhanan Messages postés 26 Date d'inscription samedi 16 décembre 2000 Statut Membre 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
A voir également:

7 réponses

nourhanan Messages postés 26 Date d'inscription samedi 16 décembre 2000 Statut Membre Dernière intervention 21 novembre 2009
29 nov. 2008 à 10:39
Bonjour

Bravo et merci à PCPT mon probleme est resolu grace à vous .
3
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
28 nov. 2008 à 12:46
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)
0
nourhanan Messages postés 26 Date d'inscription samedi 16 décembre 2000 Statut Membre Dernière intervention 21 novembre 2009
28 nov. 2008 à 13:33
en fait, à des besoins specifiques je dois travailler avec timer comme reference et non pas l'objet timer y a til une autre solution  
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 nov. 2008 à 13:56
pas très clair, ta question ....

quel est ton besoin final ?
0

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

Posez votre question
jmenfous Messages postés 117 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 2 juillet 2009 1
28 nov. 2008 à 14:01
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
0
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
29 nov. 2008 à 01:20
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...
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
29 nov. 2008 à 02:44
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 
0
Rejoignez-nous