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 : Blitz Basic - un lanceur d'application
(Article écrit par Mathieu Chènebit et extrait d'Amiga News - juin 1997)
|
|
Ce mois-ci, on passe à un nouveau genre de programme : un lanceur d'applications, tel ToolManager ou M2I.
Évidemment, notre exemple sera beaucoup moins puissant, mais je vais essayer via cette série de vous amener à un programme
fonctionnel. Comme à chaque nouveau projet, il convient de poser le cahier des charges : notre programme devra être une
commodité, être localisé, posséder un programme externe de préférences pouvant charger et sauver, et être compact. Ouf !
Que de travail en perspective, donc. :)
Nous allons tout d'abord travailler sur le moteur de notre programme, avant de le transformer en commodité. Celui-ci doit être
capable de lire le fichier de préférences, et de l'interpréter. Du point de vue graphique nous allons ouvrir une fenêtre sans
bords, et créer des gadgets Gadtools contenant le nom des programmes à lancer. Notre fichier de préférences sera quant à
lui de la manière suivante (c'est un bête fichier ASCII éditable avec n'importe quel éditeur de texte, même Ed fera l'affaire) :
les deux premières lignes contiennent la position en x et en y du coin supérieur gauche de notre fenêtre, puis les autres sont
celles qui correspondent à un programme.
Dans le source, un programme sera exprimé sous forme d'une table d'un nouveau type appelé tout simplement .typ. Celui-ci contient
deux champs : le nom, qui sera ce que vous pourrez voir sur le gadgets, et la commande, qui correspond en réalité au chemin complet
d'accès à votre programme. Lancez donc votre éditeur de texte favori (au passage, je vous recommande FrexxEd...) et saisissez les
quelques lignes suivantes :
20
20
Blitz 2
Blitz2:Blitz2
Shell
C:NewCli
Multiview
SYS:Utilities/Multiview
|
Ensuite, sauvegardez-les sous "S:Launcher.data" (ou sous un autre nom mais, dans ce cas, il faudra que vous fassiez vous-même une
petite modification dans le source). Comme expliqué précédemment, notre fenêtre s'ouvrira aux coordonnées 20,20 et possédera
trois gadgets: Blitz2, Shell et Multiview.
Passons maintenant au code proprement dit : nous devons d'abord ouvrir notre fichier de préférences avec les commandes appropriées,
puis nous saisissons les données relatives à chaque programme dans une boucle "Repeat ... Until Eof(0)" comme nous avons déjà vu dans
un précédent numéro. Un des premiers problèmes qui se pose est de déterminer la largeur maximale des gadget : il ne faudrait pas
que notre fenêtre soit trop grande ou pire, trop petite. Nous allons donc pour cela utiliser la commande système TextLength_.
Cette dernière a besoin de trois paramètres : le Rastpod de la fenêtre, la chaîne qui doit être mesurée, et le nombre de caractères
de cette chaîne. Nous devons donc ouvrir d'abord une fenêtre, que nous redimensionnerons avec la commande WSize. Notez bien cette
routine, elle vous resservira dans de nombreux programmes, pour ne pas dire dans tous vos programmes. Une fois notre fenêtre
ouverte, nous pouvons nous attaquer à nos gadgets.
N'oubliez pas la ligne "GTGZZPosition On" qui ajustera les coordonnées des gadgets Gadtools au coin supérieur gauche de la fenêtre.
Ensuite, le premier gadget sera le gadget pour quitter. Je l'ai placé là uniquement pour plus de commodité, mais libre à vous d'en
faire un gadget de déplacement comme le fait ToolManager. Ensuite, nous ouvrons nos gadgets correspondants à chaque programme
saisi dans la boucle "Repeat ... Until" grâce à une autre boucle "For ... Next" en changeant les paramètres des gadgets à chaque
passage.
Enfin, on arrive à notre routine principale de gestion des événements. Là, rien de bien compliqué ; si le gadget 0 est sélectionné,
alors on quitte le programme, sinon on lance le programme associé au gadget avec l'aide de la commande Execute_, il ne faut pas
oublier le "Run " dans la ligne d'arguments, sinon le déroulement de notre programme serait arrêté jusqu'à ce que le programme
exteme qui a été lancé soit quitté.
Le mois prochain, je vous expliquerai comment faire de notre programme une commodité. D'ici là, comme d'habitude, j'attends vos
réaction à : matc999@spidernet.tm.fr ou au journal qui transmettra. Je ne peux en attendant que vous souhaiter une... bonne
programmation !
|