3513659490

3513659490



PROGRAMMATION EN E par Pierre Girard (armand@emi.u-bordeaux.fr)

Amiga E

asl.library

Ce mois-ci, j'ai choisi de ne pas vous brusquer en vous proposant un article sur les requesters et plus particulierement sur 1'asl.library. Comme je suis sur que vous etes encore dans le coma depuis les fetes de fin d'annee, on va faire simple.

Finalite

Dabord, pourquoi choisir 1’asl.library alors que le domaine public fournit des remplacements plus avantageux comme par exemple la łabuleuse reqtools.library?

Pourquoi? Je vais vous le dire. Tout sim-plement parce que:

-    1'asl.library est facile ś programmer.

-    elle permet de creer des programmes qui tournent sur n’importe quel Amiga (>=V36), qu'il possede ou non la reqtools.

-    ceux qui preferent la reqtools peuvent tout a fait patcher 1’asl.library pour avoir la reqtools a la place (MCP. reqchange etc...).

Voila pour 1'interet de la chose. Mainte-nant. voyons ce que nous propose cette bi-bliotheque qui ne posseae que 6 tonctions dont 3 sont obsoletes. 3 types de requetes sont disponibles et sont definis par les types ASL FileRequest, ASL_FontRequest et ASL_ScreenModeRequest. Comme vous 1'aurez sans doute compris, ces 3 types correspondent respectivement aux re-questers de fichiers. de polices de caracte-res et d'ecrans. On peut y acceder grace a trois fonctions: AllocAslRequest(reqtype.

taglist), AslRequest(requester. tags) et FreeAslRequest(requester). Les deux premieres fonctions ont corrme parame-tres des tags qu’il sera ici trop long de de-crire tellement ils sont nombreux (223 si j'ai bien compte). Nous verrors donc les principaux dentre eux.

Les programmes sont courts ce mois-ci. car ils ont uniquement pour but de vous montrer comment inserer des requesters dans des applications plus lourdes

Le requester de fichier

II est trśs facile a mettre en oeuvre et smspire de celui que l’on peut trouver dans les exemples du RKRM Passees les initiahsations que tout le monde connait maintenant, on verifie la version du Kickstart et celle de 1’asl.library. Puis on alloue (on defimt une structure) un re-quester ASL grace ó la fonction. oh combien evocatrice, AllocAslRequest(). II y a deux choses ś preciser: le type (ici un requester de fichiers) et les Tags. Cest la que la bat blesse si Ton n’a pas les AU-TODOCS Bon. tout le monde aurait pu trouver la syntaxe de la largeur etc..., mais sans une bonne documentation. al-lez donc trouver comment changer le titre de la fenetre (ASL..HAIL). He. he. he .. Bon. le delire est passe. Continuons sur l affichage du requester. Un petit appel a AslRequest() et hop, c’est magique. Reste a depouiller les rśsultats. Ici. il n'y a pas beaucoup de champs de la structure qui nous interessent Avec req.drawer et req.file. on a deja tout ce que l'on demande, a savoir le chemin complet du fichier selectionne.

Le requester de fonłes

La demarche generale reste la meme. Seuls les tags changent, mais je vous laisse le soin de les decouvrir par vous-meme En ce qui concerne les polices de caractdres. le principal element a recupe-rer est le nom de la police. mais les attri-buts comme le style, la taille, la couleur etc... sont aussi importants. En effet, si l’on veut par la suitę, charger la police telie que la desire 1'utilisateur, c est quand meme relativement utile. Nous affichons donc via un WriteF() les attributs (Structure attr), c est a dire le nom. la taille le style et les flags (preferences). puis les couleurs d ecriture et de fond ainsi que le modę de dessin (complement..). Vue la place qu’il me reste sur la page, je pense qu’il est inutile de s’attarrier sur le reques-ter de modę d ścran qui est pourlant in-dispensable dans une application un tant soit peu serieuse. Je ne peux que vous dire que si le fonctionnement generał reste le meme, il faudra vous reporter aux AUTODOCS pour connaitre toutes les options disponibles

Bon, ii est tard...

et comme mon stock de bieres s'epuise (comme moi), je vais en terminer avec ce chapitre finalement facile a apprehender. J aurais aussi voulu vous parler de la fa-meuse colorwheel (vous savez, la palette en fermę de roue) mais le A4, c est un peu petit. Si je reęois du courrier a ce propos, je ferai peut etre un effort En parlant de courrier. vous ne seriez pas un peu faineant par hasard? Allez. bonne nuit!

r ASL-FileRequester*/

MODULE asl’, 'libraries/asl'

ENUMERR NONĘ, ERR ASL. ERR KICK, ERR LIB

PROC mam() HANDLE

DEF rcq:PTR TO filerequcster IF KickVersion(36)=NIL THEN Ralse(ERR KICK) IF(aslbase:-OpenLibrary( asl.library 36))=0 THEN Raise(ERR LIB)

IF (rcq:=AllocAslRequcs1(ASL FILEREOUEST.

(ASL HAIL, Mon file requoster',

ASL HEIGHT.400.

ASL WIDTH. 320.

ASL LEFTEDGE, 0,

ASL TOPEDGE, 0,

ASL OKTEXT. YEP .

ASL CANCFLTEXT. ANNULFR',

NIL]))=NIL THEN Raise(ERR ASL)

IF AslRequest(req. NIL)oNIL

WrileF( Le nom complet du fichier est    req.drawer. req file)

ELSE

WriteF( Vous avez clique sur CANCEL )

ENDIF

EXCEPT DO

IF req THEN FrceAslRequest(req)

IF aslbase THEN CloseLlbrary(aslbase)

SELECT exception CASEERR ASL

WriteF( errcurrAllocation impossible du requester ASL )

CASEERR KICK

WriteF( Erreur: asl.library <V36 )

CASEERR LIB

WriteF('Erreur: Impossible d ouvrir asl.library )

ENDSELECT

ENDPROC

r ASL-FontRequestcr V

MODULE asl', 'libraries/asl', qraphics/text‘

ENUMERR NONĘ. ERR ASL. ERR KICK. ERR LIB

PROC maln() HANDLE

DEF req:PTR TO fontrequestcr IF KickVersion{36)=NIL THEN Raisc(ERR KICK)

IF (aslbase:=OpenLibrary('asl.library'.3B))=0 THEN Ra<se(FRR LIB)

IF (req:=AllocAslRequest(ASL FONTRFOUEST.

[ASL FONTNAME. topaz.fonf,

ASL FONTHEIGHT, 11.

ASL FONTSTYLES. FSF BOLD OR FSF ITALIC.

ASL FRONTPEN. 0.

ASL BACKPEN. 1.

ASL MINHEIGHT. fl.-> Taille min.

ASL MAXHEIGHT. 14.    -> Taille max

•> On affiche tout sauf les fontes non proportionnelles ASL FUNCFLAGS. FONF FRONTCOLOR OR FONF BACKCOLOR OR FONF DRAWMODEOR    FONF STYLES OR FONF FIXEDWIDTH.

NIL]))=NIL THEN Raise(ERR ASL)

IF AslRcquest(req NIL>oNIL

WriteFC\s\\n TailleY = \\d Style = $\\h Flags = S\\h\\n'+

FPen^SWh BPen = S\\h DravyMode = S\\h\\n'.

req atlr.name. req.attr.ysize. rcq.attr.style. req.at1r.llags.

req.frontpen. req backpen, rcq drawmode)

ELSE

WritcF('Vous avez cliquć sur CANCELWn )

ENDIF

EXCEPT DO

IF req THEN FreeAslRequest(rcq)

IF aslbase THEN CloseLibrary(aslbase)

SELECT exception CASEERR ASL

WrileF('Erreur: Allocation impossible du rcquester ASLWn )

CASFERR KICK WriteFfErreur: asl.library<V36\\n )

CASE ERR LIB

WriteF( Erreur' Impossible d ouvrir asI.libraryWn )

ENDSELECT

ENDPROC

AmigoNews



Wyszukiwarka

Podobne podstrony:
Je ne reconnais plus personne en ARexx-Davidson Pas de script a proprement parler ce mois-ci, mais u
43 Figurę 2.2 Demi-ondes triangulaires limitćes en contenu harmoniąue. En choisissant de ne pas abai
PROGRAMMATION EN BLITZ BASIC par Mathieu ChenebitBlitz BasicProgramme de traitement d images lere pa
PROGRAMMATION EN BLUZ BASIC par Mathieu Chenebit Gosub UnLock Endlf Endlf If ItemHil- 2 ; routi
ceuvre dans le cadre des programmes en cours et son fonctionnement sera assure par les organi-sation
Image503 Rys. 4.635. Schemat logiczny programowanego generatora par impulsówa --(25-55)Tb i Rys. 4.6
En France, on peut se referer a I nalyse effectuee par le CES. Ce dernier propose Itfhten/ention de
77 (61) 2. Julie passer son bac/aller en Angleierre pendant un an/rentrer en France. 3. Pierre et Je
Niais ccci est impcrtant, car c’etaii cc que nous avions en cours, en par licu i i er Andreas ct Gud
9 annonce par Monstrelet est en fait fort compiet, cdui-ci setant contente de supprimer, d temps a a
Programa en donde se muestra un menu de selección para el contrato depersonal nuevo y calculo de sal
Fleurs en perles? rocaille,D redimensionner Fil Nylon; passe/ <111 tl.ms touto lo perło du cerci
19 En ce sens, Semprini rejoint la vision de Denys Cuchę qui estime que « ce qui est plutót caracter
pons84 "e n en ai rien dit pour ne pas vous vexer. Zile a 1 intention de ne plus le voir. II es

więcej podobnych podstron