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
» Biomorphe de Pickover
par jean_debord Aujourd'hui à 9:10 am

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Hier à 10:14 pm

» Planétarium virtuel.
par Pedro Alvarez Hier à 7:50 pm

» Virus/Antivirus
par JL35 Hier à 10:55 am

» Calculatrice
par papydall Ven 21 Sep 2018, 10:45 pm

» Orbites de l’ensemble de Mandelbrot
par Minibug Ven 21 Sep 2018, 9:32 pm

» Demande pour Jack concernant PanExpress
par Minibug Ven 21 Sep 2018, 11:04 am

» EPP_V01 éditeur pour Panoramic
par Minibug Mer 19 Sep 2018, 9:03 pm

» [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ?
par Jean Claude Mer 19 Sep 2018, 9:02 pm

» Petit coucou en passant !
par Minibug Dim 16 Sep 2018, 3:03 pm

» bug SEVERE fnc+sub : variables globales corrompus
par silverman Dim 16 Sep 2018, 1:38 pm

» Verrouiller un form en avant plan
par silverman Dim 16 Sep 2018, 12:50 pm

» Fin de l'aventure.
par Pedro Alvarez Sam 15 Sep 2018, 6:16 pm

» Demande d'explications Sur File_Write & File_writeln
par Jack Sam 15 Sep 2018, 5:26 pm

» MEMO avec des possibilités de commande
par Oscaribout Mer 12 Sep 2018, 1:06 am

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
CalendrierCalendrier

Partagez | 
 

 Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK

Aller en bas 
Aller à la page : Précédent  1, 2
AuteurMessage
silverman

avatar

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

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Mer 16 Mai 2018, 7:14 pm

J'ai repris ton code pur panoramic, et j'y ai simulé une procédure longue dans le doubleclic:
Code:
LABEL DoubleClic,Clic
DIM clic$ , i

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 125 : ' 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"
    for i=1 to 10
      pause 1
    NEXT I
    MESSAGE " Double-Clic"
    ' ....
RETURN
rem ============================================================================
en cliquant rapidement dans le picture, ça ne marche pas bien, plusieurs clics/doubleclics s'enchainent Sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Marc

avatar

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

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Mer 16 Mai 2018, 7:34 pm

Bonsoir à tous !

@Silverman:

As-tu essayé ma version de discrimination simple / double clics, une vingtaine de posts plus haut ?

Le délai de détection du double clics est réglable à la ligne 14. J'ai mis 250ms pour les tests.

Qu'en penses-tu ?

Je remets le source de test ici :

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 : 5648
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, 8:21 pm

@Silverman,

Je vois que bourrin est passé par chez toi ! Razz
Mais tu as raison, avec bourrin ça devient le bordel ! Plein de message à la suite...

Mais je ne m'avoue pas vaincu ! J'ai pris des mesures anti-bourrins.

Code:
LABEL DoubleClic,Clic
DIM clic$ , i

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: 
    OFF_CLICK 1
    PAUSE 125 : ' 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"
    ' ....
    ON_CLICK 1,Clic : ON_DOUBLE_CLICK 1,DoubleClic
RETURN
' ------------------------------------------------------------------------------
DoubleClic:
    OFF_CLICK 1 : OFF_DOUBLE_CLICK 1
    clic$="D"
    for i=1 to 100
      pause 1
    NEXT i
    MESSAGE " Double-Clic"
    ' ....

    ON_CLICK 1,Clic : ON_DOUBLE_CLICK 1,DoubleClic
RETURN
rem ============================================================================

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur En ligne
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, 11:55 pm

Citation :
Mais tu as raison, avec bourrin ça devient le bordel ! Plein de message à la suite...
Permets-moi de rappeler un principe simple:
Une routine évènement ne doit pas pouvoir être interrompue par un évènement du même type !
Si le traitement d'LE_CLICK depasse quelques millisecondes, il faut absolument désactiver les évènements ON_CLICK et ON_DOUBLE_CLICK par les commandes OFF_xxx correspondantes, et les réactiver à la fin du traitement. Ceci est un principe simple, déjà débattu plusieurs fois dans ce forum, et c'est même à l'origine de l'implémentation par Jack de ces commandes OFF_xxx.

Donc, de grâce, mettez ces commandes en début de traitement de l'évènement et réactivez juste avant le RETURN, et les "bourrins" n'auront plus aucune chance.

Il faut savoir qu'une routine Panoramic n'est pas réentrante. Sauf cas de figure très particulier, une routine évènement, une subroutine appelée par GOSUB, une SUB ou une FNC ne doit en aucun cas être appelée alors qu'elle est déjà en cours.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jean Claude

avatar

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

MessageSujet: Re: Aucune différence entre ON_CLICK et ON_DOUBLE_CLICK   Jeu 17 Mai 2018, 8:37 am

Hé oui Klaus,
Je n'ai pas encore pris cette bonne habitude de désactiver provisoirement un ON_CLICK... par un OFF_CLICK.
Silverman a bien fait de signaler le problème.

En tous cas, "bourrin" est vaincu une fois de plus. cheers

A+

PS: voici le code final.
Code:
LABEL DoubleClic,Clic
DIM clic$

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

' 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
' évènements Clics
ON_CLICK 1,Clic : ON_DOUBLE_CLICK 1,DoubleClic

END

rem ============================================================================
Clic: 
    OFF_CLICK 1
    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"
    ' ....

    ON_CLICK 1,Clic : ON_DOUBLE_CLICK 1,DoubleClic
RETURN
' ------------------------------------------------------------------------------
DoubleClic:
    OFF_CLICK 1 : OFF_DOUBLE_CLICK 1 : clic$="D"
    MESSAGE " Double-Clic"
    ' ....

    ON_CLICK 1,Clic : ON_DOUBLE_CLICK 1,DoubleClic
RETURN
rem ============================================================================

Revenir en haut Aller en bas
Voir le profil de l'utilisateur En ligne
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 2 sur 2Aller à la page : Précédent  1, 2
 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: