Cacher un objet tant qu'une saisie n'est pas effectuée

miam shared this question 7 years ago
Answered

Bonjour à tous,


Dans le fichier suivant, destiné à des élèves découvrant GeoGebra, je leur demande de saisir D=(x(B),AB+BC) dans le champ de saisie afin de faire apparaître le point D.


J'aimerai que ce point D apparaisse dans la fenêtre graphique 2 uniquement lorsque l'élève aura saisi la définition de D, ce qui revient (tout du moins le crois-je) à le cacher tant que la saisie n'aura pas été effectuée.


J'ai essayé de créer un booléen, j'ai tourné la commande evalCommand dans tous les sens, rien n'y fait... soit j'ai une erreur de script, soit le booléen ne varie pas...


Auriez-vous une solution ? :anguished:


Merci pour votre aide !

https://ggbm.at/560701

Comments (4)

photo
1

Bonjour, tu peux mettre un mouchard dans la function ggbOnInit() du javascript global : elle se lancer quand le fichier se charge et envoie le nom M de tout objet créé à la fonction : ArriveD.

Chaque fois qu'un objet est créé alors ArriveD teste si l'objet M créé est D et si c'est D, alors elle fait afficher D dans la fenêtre 2 et pas dans la fenêtre graphique de base.

    function ggbOnInit() {

    ggbApplet.registerAddListener("ArriveD")

    }

    function ArriveD(M)

    {

    if (M=="D")

    {

    ggbApplet.evalCommand('SetVisibleInView[D,1,false]');

    ggbApplet.evalCommand('SetVisibleInView[D,2,true]');

    }

    }

Michel

https://ggbm.at/560707

photo
1

Rooo, merci !!! :D


Jamais je n'aurai pensé à ça, j'étais resté bloqué sur evalcommand...

    J édite : Par contre, je m'aperçois que si on saisit autre chose que D=(...) alors le script fait une colère, il faudrait lui mettre un "else" après le test if (M=="D") pour y échapper, non ?


Pardon, ça marche tout le temps ! :flushed: Merci encore !

photo
1

:flushed: : j'avais oublié les accolades autour des deux commandes à exécuter quand le test est réalisé : sans cela, il effectuait la deuxième à tous les coups, d'où l'erreur. J'ai corrigé.

Les références

photo
1

J'ai rajouté deux bricoles... (une épaisseur de point plus fine, et la trace active)... J'aurai bien fait rechercher le minimum en enregistrant les positions de D dans le tableur, mais pour une activité de débutant, c'est peut être un peu compliqué...

https://ggbm.at/560711

© 2020 International GeoGebra Institute