controles dans les scripts

S'il ne s'agit pas vraiment d'une erreur, mais plutôt d'une fonctionnalité que vous souhaiteriez voir dans CaRMetal, c'est ici !
martinAcosta
Site Admin
Posts: 343
Joined: Mon Apr 28, 2014 8:06 pm

controles dans les scripts

Postby martinAcosta » Mon Jun 23, 2014 7:05 pm

Bonjour

J'aimerais avoir la possibilité de créer et d'utiliser des controles dans les scripts: cases a cocher, curseurs, case a reponse, bouton interrupteur.

Merci

Martin

Hesperion
Posts: 260
Joined: Sun Nov 11, 2007 2:14 pm
Location: Blois

Re: controles dans les scripts

Postby Hesperion » Wed Jul 16, 2014 8:57 pm

Voici un code qui permet de créer un curseur, à adapter :

Code: Select all

SetHide(Expression("t",0,0,0), true);
t = getC().find("t");
t = getZC().JCM.addSlider(t,250,20,300,29);
t.setShowUnit(false);
t.setMin(0.0);
t.setMax(2.0);
t.setVal(0.0);
t.setTicks(0.2);
t.setSnap(true);
t.setComment("Texte = ");
t.setShowVal(true);
t.setShowTicks(true);

martinAcosta
Site Admin
Posts: 343
Joined: Mon Apr 28, 2014 8:06 pm

Re: controles dans les scripts

Postby martinAcosta » Fri Jul 25, 2014 1:41 am

Merci beaucoup...

Peut on faire de meme pour les cases a cocher et les cases a reponse?

Peut on controler ou changer les valeurs des objets depuis un script? Je pense notemment a decocher une case a cocher...

Hesperion
Posts: 260
Joined: Sun Nov 11, 2007 2:14 pm
Location: Blois

Re: controles dans les scripts

Postby Hesperion » Fri Jul 25, 2014 10:44 am

Oui, très certainement mais il faut regarder dans le code source et je n'ai pas un PC digne de ce nom pour y regarder dedans en ce moment.
Est-ce que ça peut attendre début septembre ?

martinAcosta
Site Admin
Posts: 343
Joined: Mon Apr 28, 2014 8:06 pm

Re: controles dans les scripts

Postby martinAcosta » Tue Jul 29, 2014 2:02 am

J'ai regardé un peu, la case à cocher crée une expression qui a pour valeur 0 et possède une propriété v qui dit si elle est cochée ou pas.

Mais je ne sais pas comment modifier cette propriété v depuis le script. J'imagine qu'il faut récuperer l'objet avec un get, puis changer la valeur de v avec un set...

martinAcosta
Site Admin
Posts: 343
Joined: Mon Apr 28, 2014 8:06 pm

Re: controles dans les scripts

Postby martinAcosta » Wed Jul 30, 2014 3:21 am

J'ai tenté de remplacer addSlider par addCheckbox, mais il dit que cette commande n'existe pas. addButton fonctione, mais addTxtfield ne marche pas.

Comment faire pour créer une checkbox ou une case de texte?

martinAcosta
Site Admin
Posts: 343
Joined: Mon Apr 28, 2014 8:06 pm

Re: controles dans les scripts

Postby martinAcosta » Wed Jul 30, 2014 7:11 pm

J'ai trouvé la bonne commande, c'est AddChkbox.

Mais maintenant je vois qu'on peut changer la valeur du control, mais pas son aspect: la valeur change à 0 mais la case reste cochée. Et je ne trouve pas comment changer la sélection de la case...

Quelqu'un pourrait m'aider?

Hesperion
Posts: 260
Joined: Sun Nov 11, 2007 2:14 pm
Location: Blois

Re: controles dans les scripts

Postby Hesperion » Wed Jul 30, 2014 7:58 pm

Ceci fonctionne, et change normalement aussi la valeur du contrôle :

Code: Select all

SetHide(Expression("t",0,0,0), true);
t = getC().find("t");
t = getZC().JCM.addChkBox(t,250,20,30,29);
t.setSelected(true); // or false

Hesperion
Posts: 260
Joined: Sun Nov 11, 2007 2:14 pm
Location: Blois

Re: controles dans les scripts

Postby Hesperion » Wed Jul 30, 2014 8:40 pm

Et à partir de la 3.8.5, ce code fonctionnera pour changer la valeur et l'apparence de la CheckBox :

Code: Select all

jcb = getZC().JCM.CPs.get(0); //Ici, la CheckBox en question est le 0-ième contrôle présent dans la figure
jcb.setSelected(!jcb.getVal());

User avatar
Dibs
Posts: 112
Joined: Tue Apr 24, 2012 2:15 am
Location: Pau

Re: controles dans les scripts

Postby Dibs » Wed Jul 30, 2014 9:45 pm

Très intéressant.
Pour info, chez moi (version 3.8.3 sur Mac), la ligne 3 du script :

Code: Select all

t = getZC().JCM.addSlider(t,250,20,300,29);

fait planter CaRMetal.
Cela dit, en pratique je n'ai pas besoin de ce script, donc perso sensu ce n'est pas un souci.

martinAcosta
Site Admin
Posts: 343
Joined: Mon Apr 28, 2014 8:06 pm

Re: controles dans les scripts

Postby martinAcosta » Wed Jul 30, 2014 10:24 pm

Je viens d'essayer le SetSelected et cela marche, mais il ne change pas la valeur; il faut ajouter SetVal pour ce faire. Merci.

Maintenant je voudrais savoir comment procéder pour changer l'état et la valeur d'une case qui n'a pas été créé dans le script, mais directement dans la figure, c'est à dire comment récupérer cet objet dans le script?

Peut être c'est mieux si j'explique ce que j'ai en tête. On a une figure (prise dans le site de CarMetal) qui demande de changer avec un curseur la valeur b de l'équation y=mx+b, pour faire coincider une droite rouge avec une droite bleue. L'élève doit modifier la valeur de b, et une fois il crois avoir la bonne valeur, doit cocher une case "a". Alors il y a un message si c'est correct et apparaît un bouton pour changer la position de la droite bleue. On voudrait alors que en faisant clic sur ce bouton, la case "a" soit déselectionnée (et sa valeur soit 0). Tout cela serait plus simple s'il y avait des conditionnels quand on crée les contrôles, mais en attendant je pense que c'est possible avec un script.

Tout aide bienvenue...

Hesperion
Posts: 260
Joined: Sun Nov 11, 2007 2:14 pm
Location: Blois

Re: controles dans les scripts

Postby Hesperion » Thu Jul 31, 2014 9:20 am

Tu pourrais mettre la figure en pièce jointe ? ou le lien ?

martinAcosta
Site Admin
Posts: 343
Joined: Mon Apr 28, 2014 8:06 pm

Re: controles dans les scripts

Postby martinAcosta » Thu Jul 31, 2014 1:40 pm

La voici
Attachments
CorteOrdenadaCursor.zirs
L'eleve doit bouger le curseur jusqu'a superposition des droites, et selectionner la case. Si c'est correct, apparait un bouton pour cahnger la droite de base. A ce moment la je voudrais que la case devienne deselectionnee.
(3.43 KiB) Downloaded 66 times

Hesperion
Posts: 260
Joined: Sun Nov 11, 2007 2:14 pm
Location: Blois

Re: controles dans les scripts

Postby Hesperion » Thu Jul 31, 2014 3:05 pm

En retour.
Le script doit fonctionner comme il se doit avec la 3.8.5 (on peut l'installer par dessus la 3.8.4, sans avoir à la désinstaller)

Je me suis permis trois modifications :
[*] la 1re sur la fonction "Reiniciar", j'ai mis un bouton, je trouve ça plus joli ;
[*] la 2e sur la syntaxe du point H, qui était redondante par rapport à l'expression E1 ;
[*] la 3e sur la case "Haz click al terminar" qui disparait maintenant lorsque les deux droites coïncident, sinon on pouvait la décocher puis la recocher, ce qui augmentait artificiellement le nombre d'exercices réussis...
Attachments
CorteOrdenadaCursor_v2.zirs
(3.29 KiB) Downloaded 60 times
Last edited by Hesperion on Fri Aug 01, 2014 12:14 pm, edited 1 time in total.

Hesperion
Posts: 260
Joined: Sun Nov 11, 2007 2:14 pm
Location: Blois

Re: controles dans les scripts

Postby Hesperion » Thu Jul 31, 2014 5:59 pm

Et voici même une version 3 où j'ai remplacé le point H par trois expressions.
Attachments
CorteOrdenadaCursor_v3.zirs
(3.44 KiB) Downloaded 59 times


Return to “Améliorations souhaitées”

Who is online

Users browsing this forum: No registered users and 1 guest