Ce slider est similaire a la commande HSLIDER d AMOS Professional, avec l avantage supplémentaire de permettre a l utilisateur de deplacer le curseur directement avec la souris. Toute l animation est geree automatiquement par l Interface.
Voici l explication des parametres de la commande HS, dans l ordre :
Le numero de zone est simplement le numero de la nouvelle zone a definir. Ensuite viennent la largeur et la hauteur du curseur. Comme il s agit d une barre horizontale, il est logique que la largeur soit superieure a la hauteur.
Le parametre position est un nombre simple, compris entre zero et le total. Il indique la position initiale du curseur (la partie mobile de la barre qui peut etre glissee a la souris).
Total est la valeur maximale que peut retourner le slider. Les positions autorisees vont de 1 a cette valeur, chaque pas correspondant a un deplacement de curseur, en pixels.
Le parametre step controle la distance a parcourir lorsque l utilisateur clique dans la zone de fond de la barre. La barre se deplacera lentement vers la position de la souris en unites definies par le parametre total. Une fois atteinte, elle va osciller autour du pointeur.
Enfin, une liste de commandes Interface peut etre placee entre crochets []. Elle sera executee a chaque fois que le slider est modifie.
Une fois le slider actif, sa position peut etre lue depuis le programme principal AMOS grace a la fonction RDIALOG. La nouvelle position ne sera reportee qu une fois le bouton gauche de la souris relache.
Les couleurs utilisees sont : 0 pour l arriere-plan, 4 pour la barre non selectionnee, et 3 pour la barre selectionnee (habituellement clignotante). Voici un exemple fonctionnel :
E> B$=B$+"BA 112,50; definir une base au centre de l ecran" B$=B$+"HSlide 1,0,0,100,16,0,1,100,1;[] definir un slider a 100 positions" B$=B$+"EXit;" Dialog Open 1,B$ : Rem Ouvrir un canal de dialogue vers le slider D=Dialog Run(1) : Rem Lancer le programme dans B$ Curs Off : Centre "" Rem Lecture du slider Repeat D=Dialog(1) : Rem Voir si le slider a ete utilise If D<>0 Then Locate 14,20 : Print "Position ";Rdialog(1,1);" "; Until Inkey$<>"" Dialog Close