Impossible de remplir un tableau depuis mon timer

Résolu
rol64 Messages postés 33 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 28 novembre 2011 - 10 juil. 2009 à 10:26
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 - 10 juil. 2009 à 13:31
Bonjour,

Je rencontre un problème dans ce bout de code:Dim itab As Integer<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

Dim tableau(100000) As Long

 
Private Sub Timer1_Timer()

 

GetCursorPos mousePT 'Récupère les coordonnées du curseur dans la structure mousePT

tableau(i_Timer) = WindowFromPoint(mousePT.X, mousePT.Y) 'enregistre le handle                                  

i_Timer = i_Timer + 1

Label5.Caption = i_Timer

Label6.Caption = tableau(i_Timer)

 
End Sub

La valeur affichée dans label 6 est toujours '0'.
Si je remplace le tableau par une variable simple ca m'affiche bien un handle....
Quelqu'un pourrait me dire pourquoi je ne peux pas enregistrer de valeur dans un tableau à la fréquence du timer?

6 réponses

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
10 juil. 2009 à 11:17
Salut,

C'est tout à fait logique :
GetCursorPos mousePT
tableau(i_Timer) = WindowFromPoint(mousePT.X, mousePT.Y) 'enregistre le handle
'Au dessus = i_Timer = 0
'Tableau(0) = Valeur                <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

i_Timer = i_Timer + 1 '= Incrémentation +1
Label5.Caption i_Timer' i_Timer '= 1
Label6.Caption tableau(i_Timer)' Tableau(1) 'Erreur...

++

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
3
linasteph Messages postés 153 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 juillet 2009 1
10 juil. 2009 à 10:37
Salut,

Perso pour être sûr j'essaierai déjà de déclarer la variable i_Timer et de l'initialiser.

@+
0
rol64 Messages postés 33 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 28 novembre 2011
10 juil. 2009 à 10:43
Salut et Merci pour ta réponse!
En fait i_Timer est déjà déclarée (c'est juste que je n'ai pas mis tout le code).
Je l'ai initialisé à 0 au chargement de la feuille.
Ca reste pareil!
0
rol64 Messages postés 33 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 28 novembre 2011
10 juil. 2009 à 10:45
D'ailleurs je vois i_Timer s'incrémenté à la fréquence du timer dans le Label5....
0

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

Posez votre question
rol64 Messages postés 33 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 28 novembre 2011
10 juil. 2009 à 11:36
Salut Mayzz!!

"C'est tout à fait logique" --> Je dirais même que c'est tellement logique que je ne l'ai pas vu!!!!!
Forcément si je lui demande de m'afficher la valeur du tableau pour i_Timer, vu que i_Timer est incrémenté toute les 1ms j'ai pas le temps de voir la valeur enregistrée pour i_timer-1!!!
Merci beaucoup!!!!!
a+
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
10 juil. 2009 à 13:31
Heu....

En fait ou il y a cela aussi, tu dois utiliser la méthode Refresh de ton label si l'interval de ton timer ne laisse pas le temps à celui-ci de se rafrachir.

Ce que je voulais surtout dire à la base c'est que tu apelle

Label6.Caption = tableau(i_Timer)

Et non

Label6.Caption = tableau(i_Timer - 1)

Voila d'ou vien l'erreur...

sinon incrémente toujours en début ou en fin de méthode mais jamais en plein milieu.

++

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
0
Rejoignez-nous