DCL-08

Slider


Exemple 8
(curseur coulissant)


Pour ce composant, j'ai eu bien des difficultés, car je ne l'ai jamais utilisé dans mes programmes personnels et il m'a fallu lire des pages et des pages pour en arriver à quelque chose qui fonctionne.
La (une) solution a été trouvée sur AfraLisp, elle consiste à inclure un petit (defun) pour lire les valeurs du slider.

Ce composant slider est utilisé pour faire défiler un curseur le long d'une barre et de mémoriser sa position sur la barre, entre deux valeurs extrêmes.
L'utilisation est à votre discrétion, car pour l'exemple, je me suis "contenté" de dessiner une barre et de faire varier un texte en dessous avec la valeur de la position du curseur.


Le visuel de la case :

Et en action ça donne :


Le fichier DCL :

Slider01 : dialog {
                             key = "Titre";
                             label = "";//Titre depuis le LSP
                             width = 50;//
 spacer;
                             : slider { //début du slider
                                           key = "myslider" ; //attribution d'un nom
                                           max_value = 100; //valeur maxi
                                           min_value = 0; //valeur mini
                                           value = 50; //valeur initiale
                                          }
spacer;
                             : paragraph {       
                                                   : text_part {
                                                                         key = "Text1";
                                                                         label = "Le curseur est par défaut au milieu";
                                                                         //Text1 depuis le LSP

                                                                       }
spacer;
                                                   : text_part { label = "Exemple pour [www.da-code.fr]";}
                                                  }
spacer;
ok_cancel;
                        } //fin de la case slider01


Le Fichier LSP :

(defun c:slider-01 (/ slider_action)
   (defun slider_action (val why)
      (if (or (= why 2) (= why 1)) ; test de valeurs
      (set_tile "Text1" (strcat "Le curseur est à passé à : " val))
      ) ;_ Fin de if
   ) ; Fin du defun pour mise à jour du texte sous le slider
(setq Dcl_Id (load_dialog "Slider01.dcl"))
(new_dialog "Slider01" Dcl_Id)
(set_tile "Titre" " Exemple de Titre")
(action_tile "myslider" "(slider_action $value $reason)")
(start_dialog)
(unload_dialog Dcl_Id)
) ;_ Fin de defun



Première émission : 16 février 2018
mise à jour le 08 février 2019

mise à jour le 18 février 2023 pour mise en page