Corso Di Blitz Basic

Come Creare Un AppMenu Item

In questo primo articolo di programmazione in Blitz, parleremo di una delle caratteristiche più interessanti del sistema operativo di Amiga: gli AppMenu Item.

Gli AppMenu non sono altro che dei nuovi Item aggiunti al menu Tools del Workbench, e si possono aggiungere e rimuovere a piacimento. La loro utilità è molteplice: è possibile ad esempio iconificare un programma in modo da fargli chiudere la finestra e visualizzare solo un AppItem, oppure un'applicazione potrebbe linkare al menu Tools alcuni Item che rappresentano altrettanti stati dell'applicazione.

In questo articolo, vi mostreremo come creare un semplice AppItem, per ulteriori approfondimenti, vi invitiamo a leggere gli autodocs sulla "Workbench.library".

Il programma è completamente commentato, se volete potete salvarvi questa pagina HTML in formato testo e importare il sorgente in Blitz.

 

;------------- INIZIO PROGRAMMA IN BLITZ BASIC II ----------------------- ; Prima di tutto inizializziamo tre variabili che ci serviranno come ; puntatori: ; ; *myport - Puntatore alla Message Port che creeremo ; *appitem - Puntatore al nostro AppItem ; *appmsg - Puntatore al messaggio che verrà restituito da un evento AppItem. DEFTYPE.l *myport,*appitem,*appmsg FindScreen 0 ; Questo serve per il BeepScreen successivo *myport=CreateMsgPort("Fabio") ; Creiamo la nostra MessagePort tit$="Fabio Soft Item" ; Questo è il titolo del nostro AppItem *appitem=AddAppMenuItemA_(0,0,&tit$,*myport,0) ; Linkiamo l'AppItem If *appitem = 0 Then End ; Se non è stato creato, usciamo. WaitPort_ *myport ; Aspettiamo che l'utente selezioni il ; nostro AppMenu BeepScreen 0 ; Facciamo lampeggiare lo schermo ; (In modo da accorgersi che è successo ; effettivamente qualche cosa... RemoveAppMenuItem_ *appitem ; Rimuoviamo l'AppMenuItem dal menu Tools Repeat ; Ripuliamo la nostra Message Port da ; Eventuali messaggi ancora in coda *appmsg=GetMsg_(*myport) ; Attendo un messaggio If *appmsg ; Se ce n'è... ReplyMsg_ *appmsg ; Rispondo al messaggio EndIf Until *appmsg=0 ; Fino a quando non finiscono DeleteMsgPort *myport ; Cancelliamo la porta messaggi End ; Fine del programma ;----------------- FINE DEL PROGRAMMA IN BLITZ BASIC II ---------------------


Pagina Principale


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