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
|
|
|
|
En pratique : Professional Page - dater et numéroter automatiquement une page
(Article écrit par Marcel Duruflé et extrait d'Amiga News - mai 1994)
|
|
En implémentant les commandes ARexx dans Professional Page et Professional Draw,
l'éditeur Gold Disk a donné un formidable outil de développement à chaque utilisateur de ces logiciels.
Les scripts ARexx sont accessibles dans Professional Page via un bouton qui représente
une lampe d'Aladin, d'où son surnom de "Genie". Pas mal de Genies ont été écrits, dont
ceux de Don Cox, dans le DP. Malgré la simplicité et la puissance des commandes ARexx,
beaucoup de possesseurs de Professional Page sont un peu effrayés par la manipulation des
commandes ARexx. Pourtant, avec les exemples de scripts ARexx fournis, en modifiant quelques
lignes, on peut très facilement confectionner des outils sur mesure, sans trop d'effort.
C'est ce que nous allons voir.
Dater une lettre
Supposons que vous ayez à rédiger une lettre. En tête de lettre, vous mettrez
sûrement la date, dans le coin gauche, libellée comme suit : "à Toulouse, le 25 avril 1994"
ou "Toulouse, le 25/04/94". Vous pourrez créer un Genie, qui automatiquement, vous
mettra une de ces deux phrases en haut de votre courrier. Pour cela, il nous faudra une
commande pour pouvoir en temps réel ce qui se passe :
Il nous faut d'abord créer une boîte où insérer le texte, donc une commande pour
créer la boîte et une pour insérer le texte :
Boite=ppm_CreateBox(Pos_gauche, Pos_Haut, LargeurBoite, HauteurBoite, 0,),
call ppm_TextIntoBox(Boite,texte)
|
Ensuite, ce texte, il va falloir indiquer quelle police employer, son style
(gras, italique, normal, souligné), et sa taille. Donc nous aurons trois
autres commandes :
call ppm_SetFont('(CG)Times')
call ppm_SetSize(13.25)
call ppm_SetStyle('I')
|
Et pour finir, une commande générale pour voir l'évolution du programme ARexx,
je veux parler de :
Voyons en détail ces commandes
call ppm_AutoUpDate(1) : cette commande, si le mode est mis sur 0, n'affichera pas
les résultats immédiats des commandes ARexx exécutées ; à la fin du programme, vous verrez
le résultat. A noter que le programme dans ce mode s'exécute plus rapidement. Sur 1,
vous aurez la conséquence immédiate de chaque commande exécutée.
Boite=ppm_CreateBox(Pos_gauche, Pos_Haut, Largeur, Hauteur, angle, [Nom]) :
cette commande très puissante permet de positionner et dimensionner une nouvelle boîte.
La boîte créée aura un numéro d'identification qui sera stocké dans boîte.
Les coordonnées x,y du coin gauche en haut de la boîte sont mises dans Pos_Gauche,
et dans Pos_Haut, la largeur et la hauteur de la boîte respectivement dans Largeur
et Hauteur. L'inclinaison de la boîte est mise dans Angle, et son nom éventuellement
dans [Nom].
call ppm_TextIntoBox(boite,texte) : cette commande permet de stocker un
texte dans une boîte déjà existante. La variable "texte" contient le texte devant être
mis dans la boîte, et la variable "boite" désigne le numéro d'identification de la boîte,
numéro que l'on a lors de la création d'une boîte dans la commande précédente.
call ppm_SetFont("(CG)Times") : cette commande installe comme police de
caractères actuelle, la police indiquée. Le nom indiqué doit être un des noms indiqués
dans la liste des polices affichée lorsque vous visualisez cette liste. Supposons
que vous ayez : "Helvetica, (CG)Times, (CG)Triumvirate" et que vous vouliez la
dernière police indiquée, vous mettrez Call ppm_SetFont("(CG)Triumvirate").
Attention aux fautes d'orthographe ou d'espace !
call ppm_SetSize(taille) : indique la taille de la police en points. Exemple :
call ppm_SetSize(16) indique la taille 16 points.
call ppm_SetStyle(style) : indique le style : Gras(Bold), italique(italic),
souligné(Underline), détouré(Outline), ou Normal. Avec une des initiales (B/I/U/O/N).
Exemple : call ppm_SetStyle("BI").
A ces trois dernières commandes correspondent des commandes "inverse", qui permettent
de savoir quelle police, quelle taille et quel style sont en cours. Ce sont respectivement :
police=ppm_GetFont(), taille=ppm_GetSize() et style= ppm_GetStyle().
choix=ppm_Inform(nombreBoutons, texte, [texteBouton1], [texteBouton2],
EtexteBouton3]) : cette commande permet de visualiser un texte, c'est-à-dire
des données par exemple, et de faire un choix avec un, deux ou trois boutons. Ces boutons
peuvent contenir un texte chacun. Exemple : ppm_Inform(1,"N°" NumeroBoite,"Resume")
ou ppm_Inform(2,"AmigaNews","Oui","Non").
"choix" aura la valeur 0, 1 ou 2 correspondant au choix utilisateur. Pour tester
votre Genie, vous pouvez l'insérer n'importe où dans le programme.
Vous avez pu constater que certaines commandes renvoient des valeurs, d'autres pas.
ppm_GetStyle() renvoie la valeur du style, qui est un des caractères de "B/I/O/N/U",
par contre, call ppm_SetStyle('B') ne renvoie pas valeur.
Écriture du script
Pour écrire tout script ARexx, tapez une ligne de commentaire, libellée comme
suit (les commentaires doivent être précédés de "/*" et terminés par "*/") :
/* @B9.Dater @N: -Créé une Boîte Date. @I.Durufle 94 */
|
Et les lignes suivantes :
call ppm_AutoUpdate(1)
cr="0a"x
signal on error
signal on syntax
signal on halt
/* --- Départ module date --- */
|
Toutes ces lignes écrites ci-dessus n'ont pratiquement pas besoin d'être changées.
Vous pourrez toujours utiliser ces mêmes lignes pour lancer les autres programmes
ARexx. Nous allons sauvegarder les paramètres de la police en cours par sécurité !
ancienne_fonte=ppm_GetFont()
ancien_Style=ppm_GetStyle()
ancienne_taille=ppm_GetSize()
|
Ensuite, nous installerons la police voulue, ici (CG)CTimes :
call ppm_SetFont("(CG)Times")
call ppm_SetSize(13.25)
call ppm_SetStyle('I')
|
Puis les coordonnées de la boîte devant contenir le texte :
HauteurBoite=2
LargeurBoite=9
Posgauche=11
Pos_Haut=4
|
Et la commande la créant :
newbox=ppm_CreateBox(Posgauche, Pos_Haut, LargeurBoite. HauteurBoite,0,)
|
Il nous reste plus qu'à insérer la date dans cette boîte :
call TextIntoBox(newbox,'à Toulouse, le 25/04/1994')
|
Et ceci pour remettre l'ancienne police :
call ppm_SetFont(ancienne_fonte)
call ppm_SetSize(ancienne_taille)
call ppm_SetStyle(ancien_Style)
/* --- Fin module date --- */
|
Ajoutons aussi toujours les mêmes lignes ARexx, qui seront de tous
les petits programmes ARexx que vous ferez !
exit
/*======*/
halt:
call exit_msg("Utilisateur annule ce Genie!")
error:
syntax:
do
exit msg("Echec du Genie à cause de l'erreur: "errortext(rc))
end
/*======*/
exit_msg: procedure expose units
do
parse arg message
if message ~= "then call ppm_Inform(1,message,)
call ppm_ClearStatus()
call ppm_AutoUpdate(1)
exit
end
/*======*/
|
Il ne vous reste plus qu'à sauver ce programme ARexx sous le nom "Dater.pprx"
et à le stocker dans le répertoire ARexx où sont les autres Genies. Avant de
le lancer, vérifiez que vous avez déjà une page ouverte. Et vous devriez voir
"Toulouse le 25/04/94" par exemple s'afficher dans le style et la police indiqués.
Numéroter une page
C'est le même problème que nous avons résolu précédemment, c'est-à-dire
créer une boîte qui contient un texte avec le numéro de la page en lieu
et place de la date. Pour cela, nous allons reprendre le programme que nous avons écrit,
et changer la ligne call TextIntoBox(newbox,'Toulouse, le 25/04/1994')
en call TextIntoBox(newbox,'63').
C'est tout : il vous suffit de sauver ce nouveau programme sous le nom de "Numéroter.Page.pprx"
par exemple, et de le stocker là où sont les autres Genies. Pour qu'il fonctionne,
il faut que votre document ait une page au moins. Je sais, c'est évident, mais...
Autres variantes pour dater
Pour avoir la date dans Professional Page, on peut aussi utiliser la commande
ppm_CurrentDate(). Taper alors :
date.ppm_CurrentDate()
call TextIntoBox(newbox,'Toulouse, le 'date)
|
J'espère que ceci vous aura donné envie de procéder à d'autres essais. La fois prochaine,
nous verrons comment numéroter automatiquement les pages de votre document et
comment insérer ces petits programmes dans un cadre général. Rien de bien compliqué, rassurez-vous.
|