Documenttation script ggb

Gauvain Joël shared this question 7 years ago
Answered

Bonjour

Je cherche à utiliser des scripts mais je ne trouve pas d'exemples clairs et ce que je tente n'aboutit pas.

Voilà ma première question à ce sujet (Il y en aura probablement bien d'autres).

J'ai créé un texte nommé texte1 avec comme valeur "?".

Je voudrais en cliquant sur texte1 pouvoir changer la valeur du texte affiché:

Si l'affichage est "?" le texte devra être remplacé par "+"

Si l'affichage est "+" le texte devra être remplacé par "-"

Si l'affichage est "-" le texte devra être remplacé par "+"

Dans la fenêtre script par clic des propriétés de texte1 j'ai tenté d'écrire un début de code ggbscript puis Javascript sans succès

Voici mon dernier essai en Javascript


a=ggbApplet.getValueString('texte1')

if (a =="?") {ggbApplet.SetValue('texte1',"+")}


J'ai essayé sans mettre ggbApplet devant les fonctions getValueString et SetValue , d'enlever les guillemets autour de texte1, etc Bref échec .... :imp:


Peut-on écrire le code en ggbscript ?

Merci d'avance pour vos réponses.

Une fois que vous m'aurez dépanné, il serait bien de mettre de tels exemples de script en documentation car il en manque cruellement.

Comments (12)

photo
1

Bonjour Joel

Si c'est pour changer un texte en live , il faudrait passer par un champtexte dont le lien pointe vers texte1

TU crée un texte1= ""

Puis un champtexte[texte1]et les modifications de champ texte sont reportées dans le texte1

Après c'est une histoire de si[?, "+","-"]


https://ggbm.at/553283

photo
1

Merci pour ta réponse Daniel

Ce que tu me proposes ne répond pas vraiment à ma question.

Ce que je cherche c'est la façon d'agir sur un élément lorsque l'on clique dessus, l'exemple pris est celui d'un texte, cela pourrait être tout autre objet.

J'arrive à changer mon texte "?" en "+" en ggbscript mettant dans son script :

Si[texte1≟"?",SoitValeur(texte1,"+")]

Mais cela provoque un message d'erreur.

photo
1

Quand on cherche on finit par trouver:

Voilà le code ggbscript:

SoitValeur[texte1,Si[texte1≟"?","+",Si[texte1≟"+","-",Si[texte1≟"-","+"]]]]

Cela fait exactement ce que je voulais.

Reste à trouver l'équivalent en code javascript


Une question me vient à l'esprit:

Peut-on dans le ggbscript faire plusieurs choses (par exemple changer plusieurs objets de nature différentes) et comment?

photo
1

Voici un fichier avec les deux versions de scripts .

Pour un objet Texte on ne peut pas utliser getValue ni setValue, j'utilise getValueString et evalCommand (voir le code affiché sur la figure)

https://ggbm.at/553315

photo
1

Bonsoir,

    var aa = new Array("?","+","-","+");

    with (ggbApplet){

    var t1=getValueString("texte1");

    for (i=0;i<=2;i++)

    {if (aa==t1)

    {evalCommand('SoitValeur[texte1,"'+aa[i+1]+'"]');}

    }

    }

semble aussi marcher pour modifier, par clic, la valeur de texte1 dans l'ordre

? > + > - > +

Michel

https://ggbm.at/553317

photo
1

Merci beaucoup Michel

C'est original.

Pour un débutant, la difficulté pour concevoir un script Javascript dans GeoGebra est qu'il faut bien connaître les méthodes comme getValueString ou evalCommand etc , et en plus toutes les fonction de script GeoGebra comme SoitValeur etc .

Le sentiment que j'ai ressenti en cherchant la solution à mon problème est que les informations étaient cachées dans l'aide, et encore, je savais à peu près ce que je cherchais. Alors celui qui n'a jamais programmé aura beaucoup de mal pour comprendre comment écrire des scripts.

Pour "démocratiser" l'utilisation des scripts intégrés dans GeoGebra, Il faudrait créer dans l'aide une page dédiée aux scripts où toutes les méthodes et fonctions utilisables seraient réunies, avec des exemples simples.

A+

photo
1

Bonsoir,

es-tu allé voir cela ?

Par ailleurs, Noël a fait ce sous forum pour justement y mettre des exemples et répondre aux questions.

Le nombre d'outils et de commandes "tout faits" étant si important qu'il peut paraître normal de les décrire en priorité. Pour les scripts, utilisés par les utilisateurs exigeants, pour ma part, n'ayant fait aucune étude à ce sujet, je me réfère toujours à la page donnée en lien plus haut et à google avec javascript+ce qui m'intéresse, dont les objets Math., puis un certain nombre de tentatives avant que cela marche :wink: :flushed:

Avec le forum, cela va beaucoup plus vite, et le partage des exemples est toujours enrichissant.

Michel

photo
1

Bonjour

es-tu allé voir cela ?

Oui, mais ça donne les codes JavaScript, pas GGB Script.

Existe-t-il une doc donnant les codes GGB Script (par exemple SoitValeur pour SetValue, je m'arrête parce que c'est le seul que je connaise...).

Par exemple, je veux fixer la cellule A1 du tableur par Bouton radio : le code JavaScript est SetFixed('A1',true) en JavaScript, mais est-ce que je peux l'écrire en Script GeoGebra dans l'onglet "Par Clic".

Plus généralement, vaut-il mieux écrire des scripts en GeoGebra ou en JavaScript dans l'onglet "Par Clic", et qu'est-ce que ça change ?

Désolé si ces questions sont trop basiques, mais je me lance juste dans les scripts.

Hervé

photo
1

Re

Je m'auto-réponds : il semble que les commandes en anglais fonctionnent en ggbscript (sans les apostrophes)

setfixed(A1,true) fixe la cellule A1 : désolé, je les avais vues en français dans les exemples que j'avais regardés.

Du coup (si ce que j'ai dit plus haut est true !) une autre question : est-ce que toutes les commandes qui commencent par set ou get marchent en ggbscript ?

Hervé

photo
2

... Pour un débutant, la difficulté pour concevoir un script Javascript dans GeoGebra est qu'il faut bien connaître les méthodes comme getValueString ou evalCommand etc , et en plus toutes les fonction de script GeoGebra comme SoitValeur etc .

... celui qui n'a jamais programmé aura beaucoup de mal pour comprendre comment écrire des scripts.

Pour "démocratiser" l'utilisation des scripts intégrés dans GeoGebra, Il faudrait créer dans l'aide une page dédiée aux scripts où toutes les méthodes et fonctions utilisables seraient réunies, avec des exemples simples.


Je suis effectivement dans ce cas là ...

je suis en cours de rédaction d'un document où je note tout ce qui me parait utile (pour l'instant il y a l'ensemble des commandes de Script GeoGebra publiées par Noel Lambert).

Au début je ne faisait pas trop la différence entre "function" les ScriptGeoGebra, Javascript dans GeoGebra, Javascript dans une page Web, ... et ce n'est toujours pas clair.


Maintenant j'arrive à lancer une ou plusieurs actions avec du script GeoGebra par Clic ou par actualisation. J'en suis à l'utilisation de variables et là je coince.


Serge

photo
2

... suite ... un autre point qui me parait flou ggbapplet

page web, ggbscript, javascript, ... ? quel est son rôle, quand l'utilise-t-on?

photo
1

Pareil !


Autant je trouve GeoGebra fabuleusement intuitif sur toute sa partie "classique", autant je le trouve effroyablement compliqué sur toute cette partie script...


Si il n'y avait pas les coups de pouce des piliers de ce forum (mille mercis encore à Noël et Miir...) je crois que j'aurai "lâché l'affaire" depuis longtemps...


Peut être que la version avec du Python dedans sera plus simple à utiliser ? :D

© 2019 International GeoGebra Institute