
|
NUOVE CARATTERISTICHE DELLA VERSIONE 7
Questo documento riassume le nuove caratteristiche di FB^3
versione 7.
Come? un libro gratis?
Una delle prime cose che noterete è l'inclusione della nostra
nuova pubblicazione Switching to FutureBASIC (il vostro CD della
Versione 7 è nell'interno della copertina di ultima
pagina). Contiene informazioni per i programmatori che stanno
imparando Mac OS X, l'ambiente Appearance e FutureBASIC in
generale.
Un nuovo aspetto
Ci siamo rifatti il look! Le nostre nuove icone e la grafica sono
disegnate per rinforzare il concetto che potete far crescere le
vostre idee con FutureBASIC.
|
Lancio di stampa:
Parigi
21 sett. 2002
|
[ritorna all'inizio] |
Thread
Per coloro che ancora non lo sanno: i thread sono una cosa molto
bella! Potete assegnare un compito ad un a thread ed esso lo
eseguirà mentre altre operazioni sono in corso.
FutureBASIC porta i thread un passo più avanti creando
funzioni thread. Ogni volta che si chiama una funzione thread essa
inizia il compito assegnato senza interrompere gli altri processi.
Potete eseguire diverse di queste funzioni thread alla volta. Quando
END FN viene incontrato, il thread è completo e
l'ambiente di esecuzione dismette in modo trasparente tutto
ciò che è stato usato per gestire tale particolare
thread.
Un thread viene iniziato con:
THREADBEGIN FN miaFunzioneThread
Ad un certo punto nella funzione, dovrete verificare
THREADSTATUS per concedere tempo di processo agli altri
threads. Se restituisce un valore diverso da zero, allora c'è
stata una richiesta di terminare l'azione della funzione. È
anche possibile eseguire chiamate multiple alla stessa funzione
thread e ogni chiamata produrrà la sua routine
asincrona.
|
|
[ritorna all'inizio] |
Help tag
Qualcuno può per piacere far scoppiare le bolle dei Balloon Help?
Stò passando agli Help Tag di Mac OS X. Questi piccoli, molto
utili elementi possono apparire vicino ai bottoni (o altri oggetti
Mac) per fornire utili aiuti ai vostri utenti finali.

|
|
[ritorna all'inizio] |
Dove osano le aquile...
Ho usato le globali di memoria bassa (low memory globals) come
[_time] così spesso nei miei programmi che posso
scriverle nei miei sogni. Grosso problema: se fai tanto di guardare
una globale di memoria bassa in Mac OS X, il tuo programma
andrà in crash. Non ci sono finestre di avviso; nessuno ti
batte sulla spalla e ti dice, "Hey, non farlo". Il tuo programma
semplicemente terminerà.
E c'è di peggio. Non si può più sbirciare nelle
strutture (come TEHandles) per estrarre le informazioni. Dovrete fare
uso di funzioni di "prelievo" e "impostazione" del toolbox.
Usa FutureBASIC! Mentre il nostro programma viene compilato,
FutureBASIC effettua una verifica dell'uso delle costanti
corrispondenti a globali di memoria bassa o di strutture opache.
Quando una costante "illegale" viene trovata, viene inviato un avviso
(non vi metteremo in prigione per la prima volta).
Usa FutureBASIC ancora! Ora che Apple ha scordato tutto ciò
con cui abbiamo lavorato, cosa dovremmo fare?
Dobbiamo solamente far scorrere il menu aiuto fino all'ultimo libro
di Alain Pastor Conversione per Carbon. Alain esplora tutte le
routine che sono scomparse dal vostro schermo radar Mac e fornisce
sintassi alternative per ognuna di esse. Questo manuale è
indispensabile per chiunque voglia cimentarsi con Carbon.
|
|
[ritorna all'inizio] |
Utilità risorse
Mac OS X porta con sé un certo numero di problemi di gestione
dei file. Molte delle chiamate da cui dipendono i nostri programmi
improvvisamente hanno cessato di esistere.
Niete paura! Abbiamo sviluppato nuove routine che funzionano in tutte
le versioni supportate del software di sistema (da 7.6 a 10.2 al
momento in cui si scrive).
DEF CREATERESFILE
USR OPENRFPERM
Ci sono sempre stati problemi nella gestione delle risorse. Per
aggiungere o modificare una risorsa in un file a volte dovevate
preparare una pozione contenente occhi di pipistrello e una manciata
di capelli di vostra suocera. FutureBASIC arriva in soccorso ancora
una volta con una routine a prova di stupido che sostituisce o
aggiunge una risorsa in un file in modo sicuro o vi restituisce i
vostri soldi.
USR REPLACERESOURCE
Esiste un errore (e c'è sempre stato) nel Resource Manager del
mac che riserva erroneamente spazio su disco ogni volta che viene
effettuata una chiamata a ChangedResource. Se si
effettua una modifica minore ad un piccolo handle di risorsa e si
effettua tale chiamata per ogni modifica, il Resource Manager
potrebbe allocare spazio per dozzine, anche per migliaia di copie
della stessa risorsa.
Il nostro nuovo strumento per le risorse: DEF
CHANGEDRESOURCE prima controlla un handle per verififcare che
sia una risorsa. Se la è, si assicura che tale risorsa non sia
già stata marcata come modificata. Solo quando tali criteri
sono verificati essa chiama veramente il Resource Manager per che
venga marcata.
|
|
[ritorna all'inizio] |
UNIX
Ora da FutureBASIC abbiamo accesso al mondo UNIX. La nuova istruzione
OPEN "UNIX" vi permette di trattare un canale UNIX come
un file usando i comandi file i/o standard FutureBASIC.
Potete anche eseguire simultaneamente canali multipli unix aprendo
ogni canale come se apriste un altro file. Sia che stiate copiando
file, cercando volumi o anche solo scrivendo un calendario troverete
che UNIX aggiungerà una nuova dimensione alla vostra
programmazione.
// stampa un calendario per il 2002
OPEN "UNIX",1,"cal 2002"
DIM a$
DO
LINE INPUT #1,a$
PRINT a$
UNTIL EOF(1)
CLOSE 1

|
|
[ritorna all'inizio] |
Seriali sotto OSX
Smettetela di parlare con i muri! Vi assicuriamo che implementare
questa caratteristica non è stato un compito facile, ma siamo
onorati di annunciare la disponibilità delle comunicazioni
seriali in OS X. centinaia di programmi BASIC possono cominciare una
nuova vita!
|
|
[ritorna all'inizio] |
AppleScript
Fatevi una chiacchierata con il mondo usando AppleScript:
Con la Versione 7, potete creare facilmente uno script AppleScript al
volo dall'interno del vostro codice FutureBASIC, quindi eseguirlo ed
ottenerne i risultati. Potete anche memorizzare lo script compilato
per successivi usi. Una semplicità disarmante!
Un esempio?
ROUTE _toAppleScript
PRINT "return the path to me as string"
ROUTE _toScreen
LONG IF USR APPLESCRIPTRUN(messaggio$) = _noErr
PRINT messaggio$
END IF
Risultato:
Macintosh HD:AppleScriptRun folder:FB_Temp
Per un risultato più lungo avreste dovuto usare
dataHandle = USR APPLESCRIPTGETRESULT.
|
|
[ritorna all'inizio] |
Esempi, esempi, esempi...
Insieme alle migliaia di file di esempio sul CD potrete rimanere
colpiti dalle nuove gemme che sono state aggiunte per questa
versione. Troverete i programmi dimostrativi che vi mostreranno come:
disegnare con Quartz 2D
stampare testo senza aliasing
sperimentare con Altivec
caricare/scaricare file da Internet
implementare Drag & Drop
usare il Time Manager
mostrare le etichette di aiuto dinamiche di Carbon
programmare per OpenGL
accedere ai file ".nib"
accedere a proprietà non comuni delle finestre come
sfondi metallici e trasparenze in OS X
giocare con la separazione del colore
suonare file musicali in OS X
creare ed eseguire script AppleScript dal vostro codice
inviare comandi UNIX
accedere alle porte seriali in OS X
e molti, molti altri...
|
|
[ritorna all'inizio] |
Un po' di questo e quello
Certo, abbiamo sistemato qualche bug e migliorato alcune operazioni.
Le operazioni di stringa sono molto più veloci di prima ed
erano già molto veloci. Abbiamo anche cambiato il modo in cui
si crea il nome predefinito per applicazioni senza nome. Ora viene
creato usando il nome del file sorgente o del progetto. Abbiamo
sistemato la finestra di Info predefinita e alcune altre cose per
seguire le specifiche Apple del Human Interface Guidelines per Mac OS X.
Ci siamo anche cambiati i calzini, quindi ci sono un sacco di
buone notizie.
|
|