FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» demande explication KGF pour imprimer en mm
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar JL35 Aujourd'hui à 17:28

» Petit passage furtif
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar Froggy One Hier à 14:26

» SPIN et aide langage (résolu)
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar leclode Sam 23 Mar 2024 - 15:20

» Aide-mémoire des mots-clés Panoramic
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar papydall Mer 20 Mar 2024 - 21:23

» Je ne comprend pas pourquoi la largeur de la scene 3d change
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar Marc Mar 12 Mar 2024 - 20:06

» Comment télécharger panoramic?
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar lepetitmarocain Sam 9 Mar 2024 - 13:31

» @lepetitmarocain <==> KGFGrid
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar Klaus Dim 3 Mar 2024 - 9:59

» Tangram-Toukaré
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar jjn4 Mer 28 Fév 2024 - 18:12

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar jjn4 Mer 28 Fév 2024 - 18:09

» KGF_dll - nouvelles versions
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar Klaus Mer 28 Fév 2024 - 17:01

» Mes souhaits d'amélioration de Panoramic.
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar Pedro Lun 26 Fév 2024 - 18:12

» Testez-votre-QI
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar jjn4 Dim 25 Fév 2024 - 17:12

» Utilisation d'Élip
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar jjn4 Sam 24 Fév 2024 - 18:33

» Récapitulatif ludothèque panoramic jjn4
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar jjn4 Sam 24 Fév 2024 - 18:11

» Générateur de mots de passe
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar mindstorm Mar 20 Fév 2024 - 20:09

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mars 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier
-23%
Le deal à ne pas rater :
EVGA SuperNOVA 650 G6 – Alimentation PC 100% modulaire 650W, 80+ ...
77.91 € 100.91 €
Voir le deal

 

 MARK_ON déclenche un événement ON_CLICK à la place de ...

Aller en bas 
2 participants
AuteurMessage
Jean Claude

Jean Claude


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

MARK_ON déclenche un événement ON_CLICK à la place de ... Empty
MessageSujet: MARK_ON déclenche un événement ON_CLICK à la place de ...   MARK_ON déclenche un événement ON_CLICK à la place de ... EmptyMer 18 Oct 2017 - 11:01

Description du problème:
MARK_ON déclenche un événement ON_CLICK sur un CHECK à la place de l'utilisateur, si ce ON_CLICK N,LABEL a été déclaré avant l'utilisation de MARK_ON.
C'est la même chose pour MARK_OFF.
Par contre c'est un peu différent pour OPTION: MARK_OFF ne déclenche pas d’événement.

Pour le moment, je me suis positionné dans la rubrique "à l'aide".... Mais je trouve ce fonctionnement curieux.
Il me semble que ce sujet a déjà été évoqué, mais je ne le retrouve pas.

Code:
label Click
rem créer un CHECK
CHECK 1
' OPTION 1
on_click 1,Click : ' ce on_click est pris en compte par mark_on de la ligne 9 (???)
rem attendre 1 seconde
wait 1000
rem le cocher
mark_on 1 : ' est pris en compte comme un click de l'utilisateur (???)
rem attendre 1 seconde
wait 1000
rem le décocher
mark_off 1 : ' par contre ici il n'y a pas de prise en compte comme un click SI C'EST UN OPTION
' Autre remarque: si on place ON_CLICK après MARK_OFF il n'y a pas de simulation d'un click utilisateur
' on_click 1,Click
END

Click:
  message "L'utilisateur n'a pas cliqué sur le CHECK 1,"+chr$(13)+"Conclusion: mark_on 1 a simulé le click de l'utilisateur par programme,"+chr$(13)+"Comme si on avait un TRIGGER_CLICK ???"
RETURN

A mon sens, MARK_ON et OFF ne devrait pas déclencher un événement ON_CLICK même si cet événement a été déclaré, ce n'est pas son rôle Question

A+
Revenir en haut Aller en bas
Klaus

Klaus


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

MARK_ON déclenche un événement ON_CLICK à la place de ... Empty
MessageSujet: Re: MARK_ON déclenche un événement ON_CLICK à la place de ...   MARK_ON déclenche un événement ON_CLICK à la place de ... EmptyMer 18 Oct 2017 - 11:44

Je connaissais ce comportement, et pour cette raison, je fais systématiquement OFF_CLICK avant de toucher à l'état d'un OPTION ou CHECK, par programme. Puis, on ON_CLICK derrière.

Maintenant, est-ce que ce comportement a un sens, faudra voir avec Jack. Ce que je sais, c'est qu'en Delphi, le comportement est identique. Tout changement d'un CHECK, que ce soit par un clic de souris ou une commande par logiciel, déclenche l'évènement.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


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

MARK_ON déclenche un événement ON_CLICK à la place de ... Empty
MessageSujet: Re: MARK_ON déclenche un événement ON_CLICK à la place de ...   MARK_ON déclenche un événement ON_CLICK à la place de ... EmptyMer 18 Oct 2017 - 12:17

Je me doutais que ce n'était pas un bug, mais un choix de Jack.
J'ignore si c'est une raison purement technique.

Si le programmeur souhaite simuler un click sur un CHECK il peut utiliser TRIGGER_CLICK.
MARK_OFF ne devrait servir uniquement qu'à cocher visuellement le CHECK car nous disposons de toutes les commandes pour gérer les événements pour CHECK et OPTION.

Reste à savoir ce que Jack en pense.

Ta solution de dépannage avec OFF_CLICK, Klaus, est valable, mais pas toujours possible.
Je bricolerais un petit code dans l'après-midi pour illustrer mon propos.

A+

Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

MARK_ON déclenche un événement ON_CLICK à la place de ... Empty
MessageSujet: Re: MARK_ON déclenche un événement ON_CLICK à la place de ...   MARK_ON déclenche un événement ON_CLICK à la place de ... EmptyMer 18 Oct 2017 - 14:44

Bon ben j'ai bricolé un code comme prévu, mais ça n'apporte rien à ce que je voulais démontrer.
Mon code fonctionne parfaitement malgré l'événement déclenché par MARK_ON.

Je le publie quand même, mais ATTENTION il y a création d'un fichier, donc enregistrer le code dans un dossier.
Le but de ce code est d'autoriser l'accès à un programme par un mot de passe avec l'option pour l'utilisateur de le mémoriser ou pas.
Le programme gère l'activation des objets en fonction de l'état du CHECK de mémorisation.
Quand l'utilisateur clique sur le CHECK il modifie la mémorisation du mot de passe pour le prochain lancement du programme.
Pour comprendre mieux faite le tourner plusieurs fois avec ou sans la mémorisation.

Code:
dim no%,mdp$,MemoriseMdp$
font_bold 0 : height 0,200 : top 0,(screen_y-height(0))/2 : left 0,(screen_x-width(0))/2
dir_change dir_current$
if file_exists("MotDePasse.txt")=0 then CreateFichierMotDePasse():' création du fichier
obj() :' Création des objets
gosub Start

END
rem ============================================================================
Start:
 ' initialise
  mark_off CheckMemorisMdp% : inactive CheckMemorisMdp% : inactive BtValide%
 ' on commence par charger le fichier
  clear Dlist1% : file_load Dlist1%,"MotDePasse.txt"
 ' on affecte le contenu du fichier aux variables correspondantes
  mdp$=item_read$(Dlist1%,1) : MemoriseMdp$=item_read$(Dlist1%,2)
 ' Suite du programme en fonction de l'état de la varible MemoriseMdp$
  if MemoriseMdp$="Oui"
      active CheckMemorisMdp% : mark_on CheckMemorisMdp%
      text Edit1%,mdp$ : active BtValide% : set_focus BtValide%
  else
      mark_off CheckMemorisMdp% : active Edit1% : set_focus Edit1%
  end_if
 ' en attente d'un événement
RETURN

Memorisation:
 ' Si on est là c'est qu'il y a eu un click sur le CHECK CheckMemorisMdp%
  if checked(CheckMemorisMdp%)=1 then MemoriseMdp$="Oui" :' message MemoriseMdp$
  if checked(CheckMemorisMdp%)=0 then MemoriseMdp$="Non" :' message MemoriseMdp$
 ' enregistrer la modif dans le fichier (par remplacement du fichier)
  file_open_write 1,"MotDePasse.txt" : file_writeln 1,mdp$ : file_writeln 1,MemoriseMdp$ :  file_close 1
RETURN

CtrlMdp:
  if key_up_code=13 then gosub CtrlMdp2
RETURN

CtrlMdp2:
 ' contrôle du mdp
  if text$(Edit1%)<>mdp$ then message "Mot de passe incorrect !" : text Edit1%,"" : return
 ' Si on est là c'est que la saisie est OK
  active CheckMemorisMdp% : active BtValide%
RETURN

Valide:
  message "L'accès au programme est autorisé."
  ' EXECUTE le programme
  terminate
RETURN

SUB obj()
 ' dim et label
  dim Dlist1%,Edit1%,CheckMemorisMdp%,BtValide%
  label Start,Memorisation,CtrlMdp,CtrlMdp2,Valide
 ' Dlist1% pour travailler sur le fichier
  no%=no%+1 : Dlist1%=no% : dlist no%
 ' Alpha Edit1%
  no%=no%+1 : alpha no% : caption no%,"Entrez votre mot de passe: (Bonjour)" : top no%,5 : left no%,5
 ' Edit1% por saisir le mot de passe
  no%=no%+1 : Edit1%=no% : edit no% : top no%,top(no%-1)+20 : left no%,5
 ' CheckMemorisMdp%
  no%=no%+1 : CheckMemorisMdp%=no% : check no% : top no%,top(no%-1)+50 : left no%,5
              width no%,300 : caption no%,"Mémoriser le mot de passe ? (coché=Oui)"
 ' BtValide%
  no%=no%+1 : BtValide%=no% : button no% : top no%,top(no%-1)+50 : left no%,5
              caption no%,"Valider"
 ' initialise
  inactive CheckMemorisMdp% : inactive BtValide%
 ' les événements
  on_click CheckMemorisMdp%,Memorisation : on_key_up Edit1%,CtrlMdp : on_click BtValide%,Valide
END_SUB

SUB CreateFichierMotDePasse()
    file_open_write 1,"MotDePasse.txt" : file_writeln 1,"Bonjour" : file_writeln 1,"Non" :  file_close 1
END_SUB

A+
Revenir en haut Aller en bas
Klaus

Klaus


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

MARK_ON déclenche un événement ON_CLICK à la place de ... Empty
MessageSujet: Re: MARK_ON déclenche un événement ON_CLICK à la place de ...   MARK_ON déclenche un événement ON_CLICK à la place de ... EmptyMer 18 Oct 2017 - 15:48

Même avec un objet inactivé, le ON_CLICK se déclenche toujours par la commande MARK_xxx. Fais comme ceci:
Code:
Start:
 ' initialise
  off_click CheckMemorisMdp%
  mark_off CheckMemorisMdp%
  inactive CheckMemorisMdp% : inactive BtValide%
 ' on commence par charger le fichier
  clear Dlist1% : file_load Dlist1%,"MotDePasse.txt"
 ' on affecte le contenu du fichier aux variables correspondantes
  mdp$=item_read$(Dlist1%,1) : MemoriseMdp$=item_read$(Dlist1%,2)
 ' Suite du programme en fonction de l'état de la varible MemoriseMdp$
  if MemoriseMdp$="Oui"
      active CheckMemorisMdp% : mark_on CheckMemorisMdp%
      text Edit1%,mdp$ : active BtValide% : set_focus BtValide%
  else
      mark_off CheckMemorisMdp% : active Edit1% : set_focus Edit1%
  end_if
  on_click CheckMemorisMdp%, Memorisation
 ' en attente d'un événement
RETURN
Il n'y aura plus de ON_CLICK intempestifs.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


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

MARK_ON déclenche un événement ON_CLICK à la place de ... Empty
MessageSujet: Re: MARK_ON déclenche un événement ON_CLICK à la place de ...   MARK_ON déclenche un événement ON_CLICK à la place de ... EmptyMer 18 Oct 2017 - 17:08

Oui ta solution est bonne.

Et du coup, je me suis rappelé pourquoi j'avais un problème:  J'avais une apparition intempestive d'un message.

Donc, il y a 2 conditions pour ne pas avoir d'événements ON_CLICK intempestif:
1) il faut un OFF_CLICK N placé avant MARK_ON N
2) la déclaration ON_CLICK N,LABEL doit obligatoirement être placée après MARK_ON N
(N étant un CHECK ou une OPTION)

Finalement même si mon interrogation du départ sur le déclenchement d'un événement avec MARK_ON reste valable, on a une solution de contournement.

A+
Revenir en haut Aller en bas
Contenu sponsorisé





MARK_ON déclenche un événement ON_CLICK à la place de ... Empty
MessageSujet: Re: MARK_ON déclenche un événement ON_CLICK à la place de ...   MARK_ON déclenche un événement ON_CLICK à la place de ... Empty

Revenir en haut Aller en bas
 
MARK_ON déclenche un événement ON_CLICK à la place de ...
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Evènement USER_EVENT
» Nouvel événement
» évènement USER_EVENT(freebasic DLL)
» Evènement utilisateur personnalisé!
» Appel d'événement en dehors du END

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: