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 menus
(Article écrit par Pierre-Philippe Launay et extrait d'Amiga News - avril 1991)
|
|
Préparation de la disquette
La disquette d'origine de GFA Basic n'est pas utilisable telle quelle. Elle se prépare
très bien sous Shell ; c'est long mais c'est nécessaire. On extrait sous Shell les
répertoires utiles d'AmigaOS, du GFA, de la disquette Extras et il ne reste plus qu'à
créer un startup et à modifier le fichier info des icônes. Ce procédé est généralisable à
tous les logiciels non protégés.
Installation sous Shell (Amiga avec 1 Mo de mémoire)
Format Drive DF0: Name GFA 2
Copy c/copy|mak#?|Inst#?|Relabel ram:
MakeDir ram:gfa
MakeDir ram:gfa/c
MakeDir ram:devs
MakeDir ram:devs/printers
MakeDir ram:devs/keymaps
Copy libs ram:gfa/libs all
Copy l ram:gfa/l all
Copy devs ram:gfa/devs all
Copy fonts ram:gfa/fonts all
Copy c/mak#?|ass#? ram:gfa/c
Copy c/loadWB|EndCLI ram:gfa/c
Copy c/Date|SetClock ram:gfa/c
Copy system/SetMap ram:gfa/c
CD ram:gfa/devs
Copy printers/epso#? ram:devs/printers
Copy keymaps/f ram:devs/keymaps
Delete printers/#?
Delete keymaps/#?
CD ram:
Copy ram:devs ram:gfa/devs all
Delete ram:devs all
Copy gfabasic: ram:gfa all
CD "extras 1.3:"
Copy fd1.3 ram:gfa/FD1.3 all
CD GFA_2:
Copy ram:gfa GFA_2: all
Delete ram:gfa/#? all
CD "Extras 1.3:"
Copy fonts ram:gfa/fonts all
CD GFA_2:
Copy ram:gfa GFA 2: all
Relabel df0: GFABASIC
Install df0:
MakeDir S
Ed s/startup-sequence
|
Écrire dans la startup-sequence
SetClock Opt Load
MakeDir Ram:T
MakeDir Ram:Clipboards
Assign T: ram:t
Assign CLIPS: ram:clipboards
SetMap f
LoadWb
Endcli >nil:
|
Valider le tout par "Esc X Return". Puis nous quittons la mémoire proprement :
Modifier l'info des icônes
Je cliquette l'icône pour que la chevillette cherra et sélectionne l'option "Info"
du menu Workbench. Il ne reste plus qu'à remplacer l'outil défaut (Default
Tool) par SYS:System/Discopy.
A l'intérieur, je remplace, sur les autres icônes, GFABASIC: par DF0:.
Ouf ! Ce fût fastidieux. Ceux qui disent que non, ceux-là en vérité je vous le dis, ils n'ont
rien compris au GFA et peuvent retourner à leurs calculatrices.
GFA Basic
Voilà l'instant le plus émouvant puisque je vais "lancer" l'interpréteur GFA. Clic-clic.
Les choses sérieuses vont enfin pouvoir commencer. Je rassure les débutants, tout est
tellement simple avec le GFA, que les torturés du BASIC ou du pokage machine (pas sur Amiga)
se sentiront brimés. Le GFA Basic a en effet la particularité de ne pas être du BASIC.
C'est en réalité un hybride qui a extrait le meilleur des langages BASIC, C, Pascal et assembleur.
Les ordres y sont lisibles comme en BASIC, la mise en page claire comme en Pascal, les structures tiennent
du C et de nombreuses routines reprennent la logique de l'assembleur.
Alors achetez vite la dernière version de chez Micro Application. Frank Ostrowski annonçait récemment
que seul le piratage empêchait une amélioration du produit (35 000 exemplaires vendus en Amiga
contre 600 000 en Atari avec pourtant 250 000 possesseurs de GFA... bogués car piratés
en Amiga). Fin du sermon.
Écrire proprement
Le bout de code qui suit est la toute première partie du logiciel boursier final.
On met en place une structure de menu puis on demande régulièrement au GFA de s'occuper
de la gestion de la souris comme sous Workbench. Il suffit de sélectionner une rubrique
pour la voir en action.
Avant d'entrer dans le vif du sujet, je voudrais mettre en évidence plusieurs constatations
importantes qui vont vous permettre d'évoluer rapidement dans la programmation. Tout d'abord, je conseille
d'écrire en français, sans abréviation et avec un maximum de commentaires synthétiques.
Le commentaire débute une ligne avec "'" (apostrophe) ou suit un ordre avec "!" (point d'exclamation).
Il a pour but d'expliquer succinctement et sans redondance l'action réalisée. Ainsi, il ne
sera plus nécessaire de connaître à fond les astuces d'un langage pour comprendre ce que fait
le programme.
Pour la même raison, il faut oublier les abréviations. Que signifieraient dans deux mois "mn",
"cx" et "e" au lieu de "menu", "choix" et "entrée". Laissons ça aux programmeurs de PC.
Et comme on est sur Amiga, on écrira en entier "ouverture" plutôt que "ouvert" pour rester
plus convivial lors d'une relecture des sources. Enfin, nous sommes en pays francophone, alors
il ne sert à rien d'écrire "browse" au lieu de "feuilleter", par exemple.
Chapitre 1 : les menus
Une procédure est exécutée au seul appel de son nom, ici "menu". De façon générale, un menu
a pour fonction de créer un dialogue entre le logiciel et son utilisateur. Le choix peut
être réalisé au moyen de la souris ou par la combinaison des touches "Amiga droite" et d'une lettre.
Le bout de code montre un menu déroulant sous la souris.
Dans un premier temps, on choisit les différentes grandes parties du programme :
cela va constituer la ligne de titre. Ici : Valeur du jour - Modification - Statistique -
Portefeuille - Au secours.
Puis on affine. "Valeur du jour" comprendra : La saisie, La consultation et L'impression.
On écrit alors les "Data" correspondants à chaque colonne. La première chaîne de la colonne
est le titre avec un espace final recommandé. Puis suivent les rubriques ou sous-rubriques et en fin,
une chaîne vide. On procède de même pour chaque colonne. On conclut le menu par deux chaînes vides.
Bien. On va écrire tout ça dans une table. Ici : entrÉe$ qui possède 31 éléments de 0 à 30.
Regardez bien, même les chaînes vides comptent.
Lancez et testez le menu. Les procédures seront ajoutées plus tard.
- Remplacez "Consultation..." par "!Consultation..." et regardez le résultat.
C'est un sous-menu. Il y a même une particularité remarquable à découvrir. Testez à droite !
- Enlevez "Print" et relancez : un menu doit savoir où aller.
- Enlevez "Restore" et relancez : une procédure est déconnectée du programme principal
pour la lecture avec "Read".
- Ajoutez, juste après l'activation du menu, "MENU KEY 3,ASC("e")" et regardez bien la
troisième rubrique du menu : il faut ajouter quatre espaces à la chaîne "imprime".
De même, ajouter "MENU 3,"Imprimante"" et regardez. Superbe ! Ou mieux, "MENU 6,&56 AND &fff".
Puis remplacez "&fff" par "&101" ou "&fe" et modifiez "AND" par "OR".
|