nourhanan
Messages postés26Date d'inscriptionsamedi 16 décembre 2000StatutMembreDernière intervention21 novembre 2009
-
28 nov. 2008 à 12:38
nourhanan
Messages postés26Date d'inscriptionsamedi 16 décembre 2000StatutMembreDernière intervention21 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
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 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...
PCPT
Messages postés13280Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
t
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