Utiliser le timer comme reference [Résolu]

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

7 réponses

Répondre au sujet
nourhanan 26 Messages postés samedi 16 décembre 2000Date d'inscription 21 novembre 2009 Dernière intervention - 29 nov. 2008 à 10:39
+3
Utile
Bonjour

Bravo et merci à PCPT mon probleme est resolu grace à vous .
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de nourhanan
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 28 nov. 2008 à 12:46
0
Utile
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 26 Messages postés samedi 16 décembre 2000Date d'inscription 21 novembre 2009 Dernière intervention - 28 nov. 2008 à 13:33
0
Utile
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 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 28 nov. 2008 à 13:56
0
Utile
pas très clair, ta question ....

quel est ton besoin final ?
Commenter la réponse de Renfield
jmenfous 117 Messages postés mardi 21 janvier 2003Date d'inscription 2 juillet 2009 Dernière intervention - 28 nov. 2008 à 14:01
0
Utile
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 843 Messages postés mercredi 22 octobre 2003Date d'inscription 7 janvier 2009 Dernière intervention - 29 nov. 2008 à 01:20
0
Utile
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 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 29 nov. 2008 à 02:44
0
Utile
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.