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.
clicked(n) problème - Page 2 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
clicked(n) problème - Page 2 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
clicked(n) problème - Page 2 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
clicked(n) problème - Page 2 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
clicked(n) problème - Page 2 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
clicked(n) problème - Page 2 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
clicked(n) problème - Page 2 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
clicked(n) problème - Page 2 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
clicked(n) problème - Page 2 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
clicked(n) problème - Page 2 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
clicked(n) problème - Page 2 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
clicked(n) problème - Page 2 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
clicked(n) problème - Page 2 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
clicked(n) problème - Page 2 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
clicked(n) problème - Page 2 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 : -38%
Ecran PC gaming 23,8″ – ACER KG241Y P3bip ...
Voir le deal
99.99 €

 

 clicked(n) problème

Aller en bas 
5 participants
Aller à la page : Précédent  1, 2
AuteurMessage
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

clicked(n) problème - Page 2 Empty
MessageSujet: Re: clicked(n) problème   clicked(n) problème - Page 2 EmptySam 4 Avr 2015 - 2:17

Salut tout le monde.
Vous avez probablement tous raison, mais je préfère insister sur ce qui suit :
Si dans mon programme je dois gérer un click sur un bouton, j’aurais le choix de programmer ça,  soit en optant pour une programmation séquentielle, procédurale, structurée ou tout ce qu’on veut, soit en optant pour une programmation événementielle.

Je peux considérer le click sur un bouton comme une simple action et user d’astuces ou de trucs pour essayer de m’en sortir.
Et pour peu que le code ne soit pas (très) simple, je dois m’attendre à des dysfonctionnements de mon programme.
Cette méthode n’est donc pas la bonne selon mes compétences.

La solution (sage, sûre et recommandée, toujours selon mes compétences) consiste à opter pour une programmation événementielle.
Pourquoi m’en priver, alors que Panoramic  le permet ?
Pour gérer un événement, Panoramic nous propose un ensemble de commandes ON_CHANGE, ON_CLICK,  ON_CLOSE, ON_TIMER, etc.
Ces commandes signifient qu’à chaque fois que l’événement survient (à n’importe quel instant ou même jamais), le programme doit se rompre momentanément pour aller exécuter le sous-programme indiqué et revenir au point de rupture quand il rencontre la commande RETURN.
Cela signifie que le système entre dans une boucle pour scruter l’arrivée d’un éventuel événement et agir en conséquence.

Klaus a très bien expliqué ce qu’est une fonction et pourquoi on ne peut pas affecter une valeur à une fonction : mathématiquement, ça n’a pas de sens !

Pour revenir au dernier code de Jean Claude, je dirai :
La définition de l’événement se fait dans une procédure SUB init()
Quand l’événement survient (click sur le bouton  1 ou 2), le système doit sauvegarder sur la pile son environnement de travail, se brancher sur le sous-programme CLIC : qu’il exécutera jusqu’à l’instruction RETURN qui lui ordonne d’aller récupérer de la pile son environnement de travail pour continuer son exécution.
Or le sous-programme de l’événement en question, fait lui-même un appel à la procédure SUB init() avant de se terminer.
On est devant une procédure qui appelle un sous-programme qui appelle une procédure qui appelle  un sous-programme qui appelle …
C'est une récursivité incontrôlée.
Et on se demande pourquoi ça déclenche une avalanche d’erreurs !.

Bon, j’ai donné mon point de vue qui n’engage que moi.

EDIT

jean Claude a écrit:
Bref, çà pose quand même un problème: Comment fait t'on pour réinitialiser la valeur de CLICKED(N) à zéro puisque OFF_CLICK N ne le fait pas  
On ne peut donc tester le bouton qu'une seule fois ????

CLICKED(N) est une fonction.
Elle vaut une certaine valeur (soit 0, soit 1) et parler de la réinitialiser n’a pas de sens.
Ce n’est pas vrai que l’on ne peut tester le bouton qu’une seule fois : on peut le tester autant de fois que l’on veut ; la fonction retournera toujours 1 si on a déjà cliqué sur le bouton au moins une fois durant le déroulement du programme, sinon elle retournera 0

Pensez à la fonction FILE_EXISTS(F$) qui vaut 1 si le fichier F$ existe et 0 sinon.
CLICKED(N) et FILE_EXISTS(F$) sont du même type : le type fonction.
Si on teste l’existence d’un fichier par FILE_EXISTS(F$) et si cette fonction retourne 1, cela veut dire que le fichier existe.
Peut-on parler de réinitialiser la valeur de FILE_EXISTS(F$) à zéro ? Certainement pas : le fichier existe et c’est tout.
Parler de réinitialiser la fonction n’a aucun sens.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


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

clicked(n) problème - Page 2 Empty
MessageSujet: Re: clicked(n) problème   clicked(n) problème - Page 2 EmptySam 4 Avr 2015 - 9:02

Tout çà est bien compliqué, les arguments des uns ou des autres sembles tous bon, et pourtant il y a forcément une vérité.

Réédition: Le code présenté initialement ici était faux, je l'ai donc supprimé.




Dernière édition par Jean Claude le Sam 4 Avr 2015 - 13:10, édité 1 fois
Revenir en haut Aller en bas
bignono

bignono


Nombre de messages : 1127
Age : 67
Localisation : Val de Marne
Date d'inscription : 13/11/2011

clicked(n) problème - Page 2 Empty
MessageSujet: Re: clicked(n) problème   clicked(n) problème - Page 2 EmptySam 4 Avr 2015 - 9:31

Bonjour à tous,
Je ne croyais pas soulever autant de débat et de polémique avec clicked(n). Quoiqu'il en soit, je pense que JACK doit nous éclaircir sur ce sujet! Moi je suis dans le flou maintenant. Moi, Jean-Claude, Cosmos ou d'autres surement, on n'y comprend plus rien!
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

clicked(n) problème - Page 2 Empty
MessageSujet: re   clicked(n) problème - Page 2 EmptySam 4 Avr 2015 - 9:33

Pour que Clicked(N) reviennent à 0 automatiquement
il faudrait que cela soit fait de suite après le relâchement du bouton de la souris.
Sauf que, cela n' aurait de sens que pour une boucle while Clicked(N)=1 : instruction : end_while
ou l' utilisateur garderait le doigt appuyé sur la souris.
Cela remplacerait un timer.

...et permettrait le déplacement d' un objet avec la souris  Wink

Pour ce qui est du cas d' un simple clic sur un bouton ou autre,
je me sers de  number_click qui renvoit le numéro de l' objet cliqué et qui change à chaque clic.

clic%=number_click
Select clic%
case
end_select
Revenir en haut Aller en bas
Klaus

Klaus


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

clicked(n) problème - Page 2 Empty
MessageSujet: Re: clicked(n) problème   clicked(n) problème - Page 2 EmptySam 4 Avr 2015 - 9:50

@Jean-Claude:
Citation :
if active(1)=0 then message "ALPHA est inactif, je l'active." : active 2
if active(1)=1 then message "ALPHA est actif, je le désactive" : inactive 2
Ce que tu fais dans ces lignes, ce n'est pas de remettre une fonction à zéro ! Dans chacune de ces deux lignes, tu utilises une fonction pour tester l'état d'un objet, et ensuite une commande pour agir sur l'objet.
La partie "if active(1)=1" utilise la fonction active(n) qui retourne une valeur en rapport avec l'état de l'objet n.
La partie "active n" est une commande (pas de parenthèses) et effectue une action sur l'objet n. Et au prochain appel de la fonction "active(n)", la valeur retournée sera celle imposée par la commande "active n".

Jack a choisi de donner le même nom aux fonctions et aux commandes si elles touchent la même information. En réalité, ça devrait s'appeler ainsi:
Citation :
if get_active(1)=0 then message "ALPHA est inactif, je l'active." : set_active 2
if get_active(1)=1 then message "ALPHA est actif, je le désactive" : set_inactive 2
return
Tu as une fonction get_active(n) qui retourne une valeur, tout simplement. Et une commande set_active n qui agit sur un objet. Je sais, actuellement, les noms ne sont pas définis comme ça. Mais c'est une représentation mentale pour de montrer la nature profondément différente entre commande et fonction.
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

clicked(n) problème - Page 2 Empty
MessageSujet: Re: clicked(n) problème   clicked(n) problème - Page 2 EmptySam 4 Avr 2015 - 12:00

Message supprimé suite erreur sur le code que j'avais émis, plus haut, et qui était erroné. Heureusement Klaus a découvert le bug ! D'ou son message ci-dessous.
Embarassed
A+

PS: @Bignono, rassure-toi on ne polémique pas, on débat. Very Happy


Dernière édition par Jean Claude le Sam 4 Avr 2015 - 13:16, édité 2 fois
Revenir en haut Aller en bas
Klaus

Klaus


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

clicked(n) problème - Page 2 Empty
MessageSujet: Re: clicked(n) problème   clicked(n) problème - Page 2 EmptySam 4 Avr 2015 - 12:15

as-tu remarqué que tu testes l'objet 1 par active(1) et que tu in actives l'objet 2 par inactive 2 ? Normal que active(1) continue à retourner l'ancienne valeur...
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

clicked(n) problème - Page 2 Empty
MessageSujet: Re: clicked(n) problème   clicked(n) problème - Page 2 EmptySam 4 Avr 2015 - 12:24

OUPS ! Embarassed

Je remet le code corrigé.
Code:
label clic
button 1
alpha 2 : top 2,40 : left 2,20 : caption 2,"ALPHA 2"
on_click 1,clic

end

clic:
if active(2)=0 then message "ALPHA est inactif, je l'active." : active 2 : return
if active(2)=1 then message "ALPHA est actif, je le désactive" : inactive 2 : return
return

Cette fois-ci la fonction ACTIVE(N) change bien de valeur à chaque fois qu'on applique la commande  ACTIVE N

Le problème reste entier pour CLICKED(N)

A+


Dernière édition par Jean Claude le Sam 4 Avr 2015 - 13:17, édité 1 fois
Revenir en haut Aller en bas
Klaus

Klaus


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

clicked(n) problème - Page 2 Empty
MessageSujet: Re: clicked(n) problème   clicked(n) problème - Page 2 EmptySam 4 Avr 2015 - 13:00

Ce code-là fonctionne. Et je suis d'accord: clicked() a un problème.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





clicked(n) problème - Page 2 Empty
MessageSujet: Re: clicked(n) problème   clicked(n) problème - Page 2 Empty

Revenir en haut Aller en bas
 
clicked(n) problème
Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2
 Sujets similaires
-
» clicked(n)
» clicked, on_click
» Version 9.15 : bug avec les objets button (clicked() ?)
» Problème avec select case Probleme réglé merci
» [r]Y aurait-il une limite dans le nombre de sub?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Un problème avec PANORAMIC?-
Sauter vers: