Implementazione delle TagLists in Blitz Basic 2


Uno dei punti dolenti di Blitz Basic 2 č l'assenza totale della gestione delle taglist. Le taglist sono uno strumento essenziale per programmare correttamente l'OS di Amiga, in quanto, a partire dalla versione 2.0, sono diventate parte integrante di esso. Purtroppo, in Blitz non esiste una vera e propria gestione delle taglist... e questo ha portato gli innumerevoli Blitz programmers a doversi cercare delle soluzioni alternative.

Quello che vi proponiamo in questo articolo, č solo una versione "elegante" e funzionale di questa implementazione, sperando che vi possa essere utile. Il programma che troverete pių avanti č un set di comandi che permettono il pieno controllo sulle taglist: se utilizzerete queste funzioni all'interno del vostro codice, non dovrete pių preoccuparvi di come funzionano le taglist.


Un Po' Di Teoria

E' comunque meglio sapere come sono strutturate internamente le taglist.

Con la parola taglist si intende una lista di tag.

Un tagitem potrebbe essere cosė definito:

NewType .tagitem
  ti_Tag.l
  ti_Data.l
END NewType

Come vedete, all'interno di un singolo tagitem ci sono due campi: ti_Tag contiene un valore Long e identifica il tag che intendiamo modificare e ti_Data il nuovo valore che desideriamo assegnare ad un tag: anch'esso č una Long.

Una Taglist puo' essere quindi descritta come un'area di memoria appositamente ordinata all'interno della quale sono organizzati dei tagitem.

Un'area di memoria contenente una taglist potrebbe essere cosė rappresentata:

Tag_da_modificare valore_da_assegnare Tag_da_modificare valore da assegnare ....

e cosė via, fino a trovare come Tag_da_modificare un tag di valore 0.


La Libreria Di Comandi Presentata

I comandi che vi presentiamo sono una implementazione completa e sicura delle taglist in Blitz Basic 2. Utilizzando questi comandi, potrete essere certi di non avere alcun problema nell'utilizzo delle taglist, e avrete pieno accesso a tutte le chiamate di sistema che fanno uso dei tags.

Il sorgente completo lo trovate qui

Pagina Principale



    Scritto da: Fabio Rotondo      e-mail: fsoft@intercom.it
                C.so Vercelli 9
                28100 Novara
                ITALY               tel:    (ITA) - (0)321 459676