|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : août 2008 Messages : 86 ![]() |
Bonjour à tous,
J'aimerais utiliser à la fois la propriété "onclick" et la propriété "ondblclick" d'un contrôle. Or quand je double clique, access lance d'abord la fonction sur la propriété onclick, puis la fonction sur la propriété ondblclick. J'ai essayé d'utiliser des variables globales pour différencier ces deux éléments, mais ca ne marche pas, je pense que je devrais utiliser des timers mais j'ai du mal à voir comment faire. Quelqu'un a t il déja été confronté à ce problème? Merci d'avance, GL PS: Je précise que j'ai essayé d'adapter ce code... http://support.microsoft.com/?scid=k...9865&x=11&y=16 Mais sans aucun succès, il m'est renvoyé des erreurs "impossible d'accéder au kernell", et access ne comprend pas le "timer1.interval"... |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
Hello
Pour faire la différence entre les deux je déplace le code de l'évènement click du controle à l'évènement doubleclick du formulaire ce qui me donne un fonctionnement différent pour le double click dans le contrôle ou dans le sélecteur d'enregistrement Effectivement, je ne suis pas arrivé à ne pas exécuter l'évènement click en cas de doubleclick
__________________
-------------------Simplifi----------comme si tout était simple-------- |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : août 2008 Messages : 86 ![]() |
D'accord, sauf que la fonction appelée dans mon formulaire dépend du contrôle...
Par exemple si je clique sur le controle_3, j'appelle fonction(3). De même pour le double clic, ou j'appelle fonction2(3). J'en arrive à penser que c'est insoluble avec des techniques simples... |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
Hello
l'évènement doubleclick du formulaire permet quand même de faire référence au contrôle_3 et à sa valeur pour l'enregistrement courant Sinon, j'utilise des petits boutons de commande (avec un + comme "caption") situés juste à coté de la zone de texte
__________________
-------------------Simplifi----------comme si tout était simple-------- |
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Inscription : janvier 2006 Messages : 99 ![]() |
Hello !
Il y a très longtemps, j'avais fait une bidouille pour gérer ce cas. L'idée est la suivante : sur un simple clic, je fixe une variable à Vrai. Sur double-clic, je fixe cette même variable à faux. Ensuite, sur le simple clic, je ne mets aucun code, par contre sur le double clic j'effectue mon code normalement. Ensuite je paramètre l'évènement Timer pour qu'il se déclenche toutes les secondes. Sur cette évenèmement, je teste ma variable. Si elle est à Vrai, j'effectue alors le code prévu pour le simple clic (et je remets ma variable à Faux). Ainsi, si un utilisateur fait un double clic, le programme met la variable à Vrai mais la remet à Faux instantanément et le code du simple clic sur le Timer ne s'exécute pas. S'il ne fait qu'un simple clic, le code s'exécute avec un léger décalage dans le temps (on ne peut pas tout avoir) Bon, évidemment, je n'avais qu'un seul bouton à gérer et c'était plus simple que ton cas, mais c'est une piste à explorer, je pense. Cordialement, |
|
|
10
|
|
|
#6 |
|
Membre du Club
![]() Inscription : août 2008 Messages : 86 ![]() |
En effet... En y réfléchissant, je pense que dans mon cas précis la solution consiste à passer par une variable globale mais non booléenne, et un timer.
Le timer déclenche une action toutes les secondes. Quand l'utilisateur clique sur un controle, il appelle une fonction qui inscrit le nom du controle (ou des arguments liés à ce contrôle) dans la variable globale. Au double clic access exécute la fonction liée à ce double clic. A la fin de cette fonction on remet la variable globale à 0. Tous les 1 secondes (par exemple), access regarde la valeur de la variable globale. Si elle est différente de 0, il exécute le code avec en paramètre des arguments liés au contrôle sur lequel l'utilisateur a cliqué. A la fin du script, la variable globale est remise à 0. Je vais tenter cela... Cela devrait marcher j'espère dans la majorité des cas (bien qu'on ait peut etre des cas particuliers si l'utilisateur double clic juste au moment du timer). |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com