Come Creare Un 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 ---------------------
Scritto da: Fabio Rotondo e-mail: fsoft@intercom.it C.so Vercelli 9 28100 Novara ITALY tel: (ITA) - (0)321 459676