Probleme de Timer pour formulaire access

Panda -  
 seb4257 -
Bonjour,

je voudrait afficher une image pendant quelques secondes puis la faire disparaitre, un peu comme une infobulle.
j'ai donc le code suivant:

Me.ImgZoom.Visible = True

tinit = Timer
Do
If Timer - tinit > 2 Then
GoTo TempsEcoule
End If
Loop

TempsEcoule:

Me.ImgZoom.Visible = False


mais ça ne marche pas. "Me.ImgZoom.Visible = True" ne rend visible l'image qu'après la pause malgré que l'instruction soit placée avant,et l'image redevient donc invisible aussitôt.
comment faire pour que ca reste affiché 2 secondes?

merci pour votre aide

10 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

un peu modifie, mais le plus important c'est:
Timer - tinit < 2 au lieu de Timer - tinit > 2

Me.ImgZoom.Visible = True
tinit = Timer
Do While Timer - tinit < 2
    DoEvents
Loop

TempsEcoule:
Me.ImgZoom.Visible = False
0
Panda
 
vraiment merci, ça marche au poil.

une idée de pourquoi ça marche avec ta méthode et pas avec l'autre?
comme ça je me coucherai moins con et je ne referai pas l'erreur.
0
Panda
 
je voulais pousser le bouchon un peu plus loin, mais ça ne semble pas fonctionner.

je voulais sur le même principe faire une boucle identique avant de rendre l'infobulle visible pendant 1/2 seconde afin que si tu passes juste le curseur au dessus sans t'arrêter celle ci n'ait pas le temps de s'afficher.
le problème vient du fait que j'ai plusieurs contrôles a coté l'un de l'autre, et donc que si mon curseur passe rapidement au dessus de plusieurs, il y a plusieurs boucles While qui se déclenchent en simultanée et ça fait planter Access.
auriez vous une idée?

tinit = Timer
Do While Timer - tinit < 1
DoEvents
Loop

Me.ImgZoom.Visible = True

tinit = Timer
Do While Timer - tinit < 2
DoEvents
Loop

TempsEcoule:
Me.ImgZoom.Visible = False
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Ce que vous avez fait marche dans l'absolu. Ce que j'ai fait est un peu plus logique, j'ai fait une boucle d'attente de x secondes (avec un doevents pour ne pas monopoliser le processeur) et ensuite le programme continu.

Bonne suite
0

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

Posez votre question
Panda
 
merci pour votre aide en tous cas
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Pour finir, c'est le doevents qui doit faire le difference, car le code reagit plus vite que l'affichage en access ou excel
0
Panda
 
merci pour tes réponses.
par contre je n'ai décidément pas trouvé comment différer l'affichage de "l'infobulle" avec cette même méthode affin que, si tu ne fais que passer le curseur au dessus, elle ne s'affiche pas.
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

pas trouvé comment différer l'affichage de "l'infobulle"qué zaco, si c'est ce que je pense, pas possible ou alors voir avec les evenements souris

A+
0
Panda
 
de la même façon que je crée une boucle timer pour afficher l'infobulle pendant 2 seconde, je voudrais en créer une avant l'affichage de l'infobulle.
comme l'infobulle est déclenchée par le mousemove sur mon contrôle, je voudrais effectivement pouvoir passer au dessus de celui-ci sans avoir besoin qu'elle se déclenche.
donc l'idée etait de mettre une autre boucle timer d'1 seconde au début de la fonction qui regarde si il se passe autre chose (par exemple ma souris bouge encore) et le cas échéant sortir de la fonction au lieu de poursuivre avec l'affichage de l'infobulle.

tinit = Timer
Do While Timer - tinit < 1
DoEvents
'si il y a un événement c'est que mon curseur passait au dessus de mon contrôle, mais qu'il ne faut pas afficher l'infobulle donc que je dois sortir. un truc du style "if events then goto TempsEcoule" sauf que cette fonction n'existe pas.
Loop

Me.ImgZoom.Visible = True

tinit = Timer
Do While Timer - tinit < 2
DoEvents
Loop

TempsEcoule:
Me.ImgZoom.Visible = False
0
seb4257
 
t'as trouvé une solution pour le délai d'affichage?
0