FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Planétarium virtuel.
par Pedro Alvarez Hier à 16:57

» Roues dentées
par jean_debord Hier à 10:40

» Attention arnaque !
par mindstorm Jeu 19 Juil 2018 - 19:18

» Qui fait quoi ?
par silverman Mer 18 Juil 2018 - 15:21

» ITEM_SELECT N,L pour synedit
par silverman Mer 18 Juil 2018 - 15:20

» Boussole
par jean_debord Mer 18 Juil 2018 - 11:06

» Roue à n faces
par Marc Dim 15 Juil 2018 - 22:16

» Exemple d'une nouvelle version d'un GRID
par Jean Claude Ven 13 Juil 2018 - 10:32

» Une simple question
par Oscaribout Sam 7 Juil 2018 - 23:20

» BUG sur l'objet TAB
par Jack Sam 7 Juil 2018 - 21:12

» Monopoly moderne
par jjn4 Sam 7 Juil 2018 - 15:06

» Récapitulatif ludothèque panoramic jjn4
par jjn4 Ven 6 Juil 2018 - 17:41

» Lignes ondulées
par JL35 Ven 6 Juil 2018 - 17:39

» bug off_activate 0 : sans d'effet
par silverman Ven 6 Juil 2018 - 13:02

» Position des objets d'un conteneur dans FBPano et Panoramic
par Navigateur Ven 6 Juil 2018 - 12:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2018
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK

Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
xxx



Nombre de messages : 261
Date d'inscription : 30/03/2018

MessageSujet: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Dim 6 Mai 2018 - 15:52

Boinnjour,

Je viens de découvrir avec horreur que PANORAMIC ne différencie pas ON_CLICK et ON_DOUBLE_CLICK.

Démonstration

Code:
picture 1

label simpleClick, doubleClick

on_click 1,simpleClick
on_double_click 1,doubleClick

END

simpleClick:
    Message "SIMPLE Click"
return

doubleClick:
    Message "DOUBLE Click"
return

Comment pallier ça ?

Merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5527
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Dim 6 Mai 2018 - 16:54

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
xxx



Nombre de messages : 261
Date d'inscription : 30/03/2018

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Dim 6 Mai 2018 - 17:21

Merci pour le lien. Mais sérieusement, un truc aussi rudimentaire qu'un double clic n'est pas réglé depuis 2012 ???
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5527
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Dim 6 Mai 2018 - 17:38

As-tu essayé le code fourni en exemple dans le manuel de référence (bouton [Charger l'exemple]) ?.
Il fonctionne.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
xxx



Nombre de messages : 261
Date d'inscription : 30/03/2018

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Dim 6 Mai 2018 - 17:45

Jean Claude a écrit:
As-tu essayé le code fourni en exemple dans le manuel de référence (bouton [Charger l'exemple]) ?.
Il fonctionne.

A+
Le double clic fonctionne, ce n'est pas ça le problème, mais c'est que le simple clic est également détecté lors du double clic ! Il est donc impossible de différencier les deux... sauf bidouille qui ne me plait pas vraiment... Je vais tacher de biaiser...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2979
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Dim 6 Mai 2018 - 17:48

Salut Fred !

je te conseille de regarder ici.

ça permet le clic droit et gauche, ainsi que le double clic ! Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Jean Claude

avatar

Nombre de messages : 5527
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Dim 6 Mai 2018 - 17:50

Oui, je comprends.
De mémoire, il me semble que ce sujet a déjà été traité sur ce forum, mais je ne retrouve pas.

Si jack passe par ici il pourrait te répondre mieux que moi.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc

avatar

Nombre de messages : 803
Age : 57
Localisation : TOURS
Date d'inscription : 17/03/2014

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Dim 6 Mai 2018 - 19:55

Bonsoir à tous !

Je vous propose un petit bidouillage maison qui permet la discrimination entre 1 clic et 2 clics, sans que le simple clic soit activé lors d'un double clic.

Code source avec démo intégrée :

Code:
LABEL Action
DIM a,b,c
FONT_NAME 0,"Times New Roman"
FONT_SIZE 0,50
BUTTON 1
LEFT 1,25
TOP 1,25
ON_CLICK 1,Action
END
' ------------------------------------------------------------------------------
Action:
    a=NUMBER_TICKS
    b=b+1
    WHILE NUMBER_TICKS < a+250
        IF b>2
            b=2
            EXIT_WHILE
        ENd_IF
    END_WHILE
    OFF_CLICK 1
    IF b=1 THEN un_clic()
    IF b=2 THEN deux_clics()
    ON_CLICK 1,Action
RETURN
' ------------------------------------------------------------------------------
SUB un_clic()
    PRINT_LOCATE 100,50
    PRINT STR$(b)+" clic"
    PAUSE 500
    b=0
    CLS
END_SUB
' ------------------------------------------------------------------------------
SUB deux_clics()
    PRINT_LOCATE 100,150
    PRINT STR$(b)+" clics"
    PAUSE 500
    b=0
    CLS
END_SUB

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5527
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Dim 6 Mai 2018 - 20:39

bonsoir Marc,

Je viens de tester ton astuce, qui ressemble à celle de Bignono, mais le problème reste.
Si l'utilisateur est un peu lent, on a un simple clic, donc dans tous les cas le premier clic est détecté.

En y réfléchissant bien, je pense que c'est incontournable, car le premier clic est un événement et il dirige forcément vers le sous programme indiqué par ON_CLICK.

Une remarque: tu as utilisé un bouton, c'est correct pour ON_CLICK, mais si on veut utiliser ON_DOUBLE_CLIC cet objet n'est pas accepté.

Il y aurait bien une solution: Ne pas avoir de ON_CLICK sur l'objet concerné.

Exemple à partir de ton code largement modifié:
Code:
LABEL DoubleClic

FONT_NAME 0,"Times New Roman"
FONT_SIZE 0,50
PICTURE 1 : color 1,0,0,0
LEFT 1,25
TOP 1,25
ON_DOUBLE_CLICK 1,DoubleClic
END
' ------------------------------------------------------------------------------
DoubleClic:
    PRINT_LOCATE 100,150
    PRINT " double clics"
    PAUSE 500
    CLS
RETURN

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2979
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Dim 6 Mai 2018 - 20:48

Je rappelle que j'ai donné la solution juste au dessus sans contourner quoi que se soit.
Je pense que c'est passé inaperçu ! Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Jean Claude

avatar

Nombre de messages : 5527
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Dim 6 Mai 2018 - 20:57

Ben wouais Minibug,
Mais un simple clic donne une réponse érronnée (Clic Droir sur Form 0).
geek
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
xxx



Nombre de messages : 261
Date d'inscription : 30/03/2018

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Dim 6 Mai 2018 - 23:46

Merci pour tout ce temps que vous avez consacré à ce petit souci. J'ai trouvé la solution pendant ma sieste, et c'est la plus efficace jamais pondue : je vais me passer du double clic Very Happy !!!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5527
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Lun 7 Mai 2018 - 8:14

lol! lol! lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2979
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Lun 7 Mai 2018 - 8:50

Ben oui c'est vrai que ça ne fonctionne pas !
J'ai perdu l'occasion de me taire... Embarassed

Ta solution est la meilleure Fred, et en plus elle marche à tous les coups ! Laughing Laughing Laughing
Voilà une preuve comme quoi la sieste est profitable. Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
silverman

avatar

Nombre de messages : 659
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Lun 7 Mai 2018 - 14:54

@fredisland
Pour palier à ce pb, il faut faire réagir ton objet seulement à un simple clic, puis dans le traitement de l'évènement différencier le simple clic d'un double clic. Il n'existe pas de fonction pour faire ça, il faut la créer:
Code:
picture 1

label simpleClick, doubleClick, checkClick

on_click 1,checkClick


END
fnc type_click_OLD(obj%)
 ' 1=simple clic, 2=double clic
 dim_local start%,out%,dc%
  out%=clicked(obj%)
  start%=number_ticks+125
  dc%=double_clicked(obj%) :' RAZ variable
  repeat
      dc%=double_clicked(obj%)
  until number_ticks>=start% or dc%=1
  result out%+dc%
end_fnc


checkClick:
 off_click 1
   if type_click(1)=2
      gosub doubleClick
   else
      gosub simpleClick
   end_if
 on_click 1,checkClick
return

simpleClick:
    Message "SIMPLE Click"
return

doubleClick:
    Message "DOUBLE Click"
return

EDIT : Je viens de perfectionner la fonction, c'est encore plus simple! Voir code dans mon post suivant


Dernière édition par silverman le Mar 8 Mai 2018 - 10:45, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
xxx



Nombre de messages : 261
Date d'inscription : 30/03/2018

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Lun 7 Mai 2018 - 15:38

silverman a écrit:
@fredisland
Non, c'est décidé, je ne double clic plus Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 659
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Mar 8 Mai 2018 - 10:56

Comme tu veux Fredisland clown
Je viens de perfectionner mon précédent code, il s'agit d'un autre moyen fiable et encore plus simple de différencier un simple clic d'un double clic sur un objet. Je met un code en partage, je suis sur qu'il sera utile à quelqu'un:
Code:
picture 1

label simpleClick, doubleClick, checkClick

on_click 1,checkClick


END
fnc type_click(obj%)
 ' 1=simple clic, 2=double clic
 dim_local null%
   null%=double_clicked(1) :' RAZ
   pause 125
   result clicked(1)+double_clicked(1)
end_fnc


checkClick:
 off_click 1
   if type_click(1)=2
      gosub doubleClick
   else
      gosub simpleClick
   end_if
 on_click 1,checkClick
return

simpleClick:
    Message "SIMPLE Click"
return

doubleClick:
    Message "DOUBLE Click"
return
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2979
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Mar 8 Mai 2018 - 11:08

C'est terriblement efficace ! Et d'une simplicité. Wink

Excellent Silverman, comme d'habitude. Bravo ! cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Jean Claude

avatar

Nombre de messages : 5527
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Mer 16 Mai 2018 - 9:02

Je me permet de relancer ce sujet car je pense qu'on a cherché des solutions complexes à un problème simple.
J'ai également remarqué que les solutions n'utilise pas ON_DOUBLE_CLICK N.

Voici ma solution toute simple:

Code:
LABEL DoubleClic,Clic
DIM clic$

PICTURE 1 : color 1,0,0,0 : LEFT 1,25 : TOP 1,25

' évènements Clics
ON_CLICK 1,Clic : ON_DOUBLE_CLICK 1,DoubleClic

END

rem ============================================================================
Clic:
    PAUSE 250 : ' attente d'un éventuel double-clic avant de traiter le simple click
    IF clic$="D" THEN clic$="" : RETURN : ' Si clic$="D" on sort
    ' si pas d'autre clic on traite le simple click
    MESSAGE " Clic Simple"
    ' ....
RETURN
' ------------------------------------------------------------------------------
DoubleClic:
    clic$="D"
    MESSAGE " Double-Clic"
    ' ....
RETURN
rem ============================================================================




A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Mer 16 Mai 2018 - 10:37

Je pense que c'est la bonne solution. Cela tient compte du mécanisme de Windows. L'évènement ON_CLICK est en effet systématiquement déclenché lors d'un premier clic. Ensuite, si le deuxième clic intervient dans un délai inférieur à celui spécifié par le paramètre "double click speed" pour la souris, dans le panneau de configuration, alors l'évènement ON_DOUBLE_CLICK est générée au lieu d'un deuxième évènement ON_CLICK.

Voici le réglage:


Et comme ce délai varie d'un système à l'autre, et d'un utilisateur à l'autre, il fait jongler avec la valeur du délai dans la commande PAUSE de ta routine Clic. Trop log, ça ralentit sensiblement, trop court,, le double clic n'est plus détecté.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
xxx



Nombre de messages : 261
Date d'inscription : 30/03/2018

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Mer 16 Mai 2018 - 10:40

Utiliser une PAUSE est une très mauvaise idée car le délai entre deux clics est paramétrable depuis le panneau de configuration de Windows (je ne sais pas comment il s'appelle sur Mac). Le code ne fonctionnera donc pas chez tout le monde.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 11088
Age : 69
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Mer 16 Mai 2018 - 10:50

Tu peux récupérer le délai actuel configuré dans Windows de la manière suivante:
Code:
dim delai%
dll_on "USER32.dll"
delai% = dll_call0("GetDoubleClickTime")
dll_off

Tu peux changer ce délai de la manière suivante:
Code:
dim delai%, res%
dll_on "USER32.dll"
delai% = 137 : ' <=== mettre ici le délai souhaité en millisecondes, maxi 5000
res% = dll_call1("SetDoubleClickTime",delai%)
dll_off

C'est simple... Si c'est fait en début de programme, il n'y a pas d'interaction avec d'autres dlls.

EDIT

Vérification faite, chez moi, ce délai est de 500 millisecondes. Il faudrait donc porter le paramètre de PAUSE à 500 pour être en phase avec la gestion du double-clic de Windows, du moins sur mon système.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jean Claude

avatar

Nombre de messages : 5527
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Mer 16 Mai 2018 - 12:50

Intéressant cette fonction de la "USER32.dll" pour capturer le délai entre 2 clics.
De cette manière on peut rendre le code portable.
Et Fredisland n'a plus à s’inquiéter de la portabilité du code.

Merci pour l'info Klaus.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
xxx



Nombre de messages : 261
Date d'inscription : 30/03/2018

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Mer 16 Mai 2018 - 13:04

Jean Claude a écrit:
Intéressant cette fonction de la "USER32.dll" pour capturer le délai entre 2 clics.
De cette manière on peut rendre le code portable.
Et Fredisland n'a plus à s’inquiéter de la portabilité du code.

Merci pour l'info Klaus.

A+

Je valide Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5527
Age : 64
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Mer 16 Mai 2018 - 13:45

Comme quoi c'est toujours intéressant de reprendre un sujet pour étudier d'autres options.

En fait, c'est la possibilité de pouvoir avoir 2 sous programmes de traitement différents qui m'a insisté à reprendre le sujet. En effet, en gardant l'esprit de Panoramic, si on dispose de 2 commandes (ON_CLICK et ON_DOUBLE_CLICK) pourquoi ne pas utiliser l'une d'entre elle.

Une variable système pourrait éventuellement remplacer la fonction de "USER32.dll" .
Par exemple résultat=DOUBLE_CLICK_TIME_LIMIT(SYSYEM$).

A+

PS: le code intégrant le délai du système de l'utilisateur.
Code:
LABEL DoubleClic,Clic
DIM clic$

' récupération du delai (du PC) entre 2 clics pour portabilité du double-clic
DIM TimeLimitDoubleClic%
dll_on "USER32.dll"
TimeLimitDoubleClic% = dll_call0("GetDoubleClickTime")
dll_off

PICTURE 1 : color 1,0,0,0 : LEFT 1,25 : TOP 1,25

' évènements Clics
ON_CLICK 1,Clic : ON_DOUBLE_CLICK 1,DoubleClic

END

rem ============================================================================
Clic:
    PAUSE TimeLimitDoubleClic%: ' attente d'un éventuel double-clic avant de traiter le simple click
    IF clic$="D" THEN clic$="" : RETURN : ' Si clic$="D" on sort
    ' si pas d'autre clic on traite le simple click
    MESSAGE " Clic Simple"
    ' ....
RETURN
' ------------------------------------------------------------------------------
DoubleClic:
    clic$="D"
    MESSAGE " Double-Clic"
    ' ....
RETURN
rem ============================================================================


A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   

Revenir en haut Aller en bas
 
Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» [RESOLU] "Symbiose" entre SoftwareZator et site web....
» Question sur compatibilité entre carte mére et carte graphique
» Petites insertions entre amis....
» Colorado 300 et dalle sur SD
» Edge 705: ce fichier ne contient aucune donnée????

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: