DCL-06

RADIO_BUTTON


Exemple 6
Boutons Radio


Dans cet exemple je vais utiliser trois lignes de deux boutons radio.
C'est vraiment de mieux en mieux sur ce site !!!

Blague à part, ces trois lignes auront des particularités, à savoir qu'au départ seule la première ligne sera sélectionnable et ce n'est qu'une fois qu'un choix sur cette première ligne aura été effectué qu'une autre des deux lignes restantes deviendra sélectionnable, et une seule des deux le sera et ce, en fonction du choix de la première ligne, ouf ! pas simple à expliquer par écrit... j'essaie en images :
Au départ le visuel est celui-ci :

Je vous prie d'excuser le côté puéril des choix mais il est question d'exemple, on est bien d'accord, vous n'allez pas me lancer des pierres ?
Ce qui est utile dans cet exemple c'est que seule la première ligne est sélectionnable.
En cliquant sur la première ligne, si on choisit "soleil", le visuel devient ça :

Hop, la deuxième ligne se dégrise et on peut désormais cliquer dedans.
Si on change d'avis et qu'on clique sur "pluie" en revenant en première ligne, c'est la troisième ligne qui s'allume en éteignant la deuxième.


Le fichier DCL :


Le fichier LSP :


 

Regardez les lignes 18 à 22 dans le LSP, c'est là que ça se passe, on lance un (mode_tile) une fois qu'on a cliqué sur un des boutons de la première ligne.


Les fichiers copiables :

Le fichier DCL :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Boutons_Radio_05 : dialog {
 label = "[www.da-code] Boutons Radio MÉTÉO ";
  : boxed_radio_row {
          label = "Météo ? ";
          : radio_button {
          label = "Soleil";
          key = "rb1";
 }
 : radio_button {
                 label = "Pluie";
                 key = "rb2";
                }
 }
                : boxed_radio_row {
                : radio_button {
                label = "Ombrelle";
                key = "rb3";
                is_enabled = false;
 }
 : radio_button {
                 label = "Crème solaire";
                 key = "rb4";
                 is_enabled = false;
                }
 }
: boxed_radio_row {
                  : radio_button {
                  label = "Parapluie";
                  key = "rb5";
                  is_enabled = false;
  }
 : radio_button {
                 label = "Ciré de marin";
                 key = "rb6";
                 is_enabled = false;
     }
 }
 spacer; 
 ok_cancel ; //bouton OK/Cancel prédéfini
 }

Le fichier LSP :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
(defun c:Boutons-Radio_05 ( / rb1 rb2 rb3 rb4 rb5 rb6)
(setq dcl_id (load_dialog "Boutons_Radio_05.dcl"))
   (if (not (new_dialog "Boutons_Radio_05" dcl_id))
       (exit)
   );_ Fin de if
 (action_tile
   "rb1"
   "(mode_tile \"rb3\" 0)
   (mode_tile \"rb4\" 0)
   (mode_tile \"rb5\" 1)
   (mode_tile \"rb6\" 1)
   (setq rb1 $value)
   (setq rb2 nil)"
 ) ;_ Fin de action_tile
 (action_tile
    "rb2"
    "(mode_tile \"rb3\" 1)
     (mode_tile \"rb4\" 1)
     (mode_tile \"rb5\" 0)
     (mode_tile \"rb6\"0)
     (setq rb2 $value)
     (setq rb1 nil)"
 ) ;_ Fin de action_tile
 (action_tile "rb3" "(setq rb3 $value)")
 (action_tile "rb4" "(setq rb4 $value)")
 (action_tile "rb5" "(setq rb5 $value)")
 (action_tile "rb6" "(setq rb6 $value)")
 (action_tile
 "accept" ;OK
 "(done_dialog) (setq userclick T)" ;close dialog
 ) ;_ Fin de action_tile
 (action_tile
 "cancel" ;if cancel
 "(done_dialog) (setq userclick nil)" ;close dialog
 ) ;_ Fin de action_tile
 (start_dialog) ;start dialog
 (unload_dialog dcl_id) ;unload 
;analyse des boutons allumés
 (if ( and (= rb1 "1")(= rb3 "1"))
 (alert "il fait beau et vous sortez avec une ombrelle")
 )
 (if ( and (= rb1 "1")(= rb4 "1"))
 (alert "il fait beau et vous sortez avec de la crème solaire")
 )
 (if ( and (= rb2 "1")(= rb5 "1"))
 (alert "il pleut vous sortez avec un parapluie")
 )
 (if ( and (= rb2 "1")(= rb6 "1"))
 (alert "il pleut et vous sortez avec un ciré de marin")
 )
 (princ)
) ;defun


Haut de page

Retour à "Exercices DCL"


03 février 2018