Suivez-nous sur X

|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Programmation : GFA Basic - Les gadgets de chaînes
(Article écrit par Denis Obriot et extrait d'Amiga News Tech - mai 1990)
|
|
Cette fois, nous allons voir le dernier type de gadget d'Intuition : les gadgets de chaîne. Ils permettent de
saisir une chaîne de caractères ou un entier sans passer par la lecture du clavier.
Ils consistent en une zone de saisie dans laquelle il faut cliquer pour pouvoir rentrer les données.
Nous avons déjà vu que dans le champ type de la structure gadget 4 correspond à un gadget de chaîne
(voir cet article). Il faut ensuite placer dans le champ "Special Info"
un pointeur sur une structure StringInfo.
Voici comme d'habitude la structure C :
Les variables de cette structure n'appellent pas de commentaire particulier.
Quelques petites précisions
Le champ activation de la structure gadget comporte quelques bits ayant une signification pour les gadgets
de chaîne :
- &h0200 : la chaîne sera centrée dans le conteneur du gadget.
- &h0400 : la chaîne sera justifiée à droite.
- &h0800 : le gadget représente un entier long.
- &h1000 : le gadget possède une structure AltKeyMap personnelle.
Voilà pour les données générales, le programme de ce mois-ci définit un gadget de chaîne, et affiche
la chaîne lors du clic sur le gadget. Trois routines sont définies :
- Stringinfo qui initialise la structure C et les deux tampons de saisie (buffer) et un dobuffer, le calcul
des premières lignes permet de déterminer la longueur exacte occupée dans la mémoire (on aligne un dobuffer%
pour ne pas avoir d'adresse impaire car le 68000 en a horreur). La boucle en fin de procédure sert à
initialiser le tampon par la chaîne c$ en la terminant par un zéro (en C, les chaînes se terminent par un
zéro qui sert de délimiteur).
- Litstringinfo qui permet de récupérer la chaîne saisie par l'intermédiaire du gadget.
- Et enfin Liberestringinfo qui libère la mémoire occupée par le gadget.
Utilisation du gadget de chaîne
L'activation du gadget est effectuée par clic dans le conteneur du gadget. La fin de saisie est
réalisée soit par l'appui sur la touche "Entrée" soit par clic hors du conteneur du gadget.
Le gadget de chaîne permet la saisie d'une chaîne bien plus longue que la place occupée à l'écran :
les touches curseurs permettent de se déplacer à l'intérieur de la chaîne.
Les touches "Suppr" et "Effacement" permettent respectivement d'effacer le caractère sous le curseur et
le caractère à gauche du curseur.
L'appui simultané sur "Amiga-droite" et "Q" annule la dernière modification. L'appui simultané sur "Amiga-droite"
et "X" efface le tampon d'entrée.
Programme de démonstration des gadgets
|