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
» Logiciel de planétarium.
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
MARK_ON déclenche un événement ON_CLICK à la place de ... Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -29%
DYSON V8 Origin – Aspirateur balai sans fil
Voir le deal
269.99 €

 

 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 : 5950
Age : 70
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 : 12331
Age : 75
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 : 5950
Age : 70
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 : 5950
Age : 70
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 : 12331
Age : 75
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 : 5950
Age : 70
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
-
» Nouvel événement
» Evènement USER_EVENT
» Déclarer une routine évènement par son nom
» Evènement ON_CHANGE sur une FORM
» Evènement ON_SHOW sur une FORM

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: