[FR] [EN]
  [INFO] [COMPRA] [MAPPA] [RISORSE]


NUOVE CARATTERISTICHE DELLA VERSIONE 6

Questo documento riassume le nuove caratteristiche di FB^3 versione 6.

Carbon
Potete crederci? Ora possiamo compilare codice compatibile con Carbon! Cosa significa per l'utente? Molto semplicemente che le vostre applicazioni gireranno sotto Mac OS 9, o a pieno titolo, sotto Mac OS X.

Ambiente Appearance
Il codice di esecuzione Appearance è ora completamente funzionante e molto elegante!



Lancio di stampa:
Parigi
25 feb. 2002

[ritorna all'inizio]

Finestre Appearance
  • Finestre Galleggianti

    Non c'è bisogno di spendere ore per provare a far stare tutto dove dovrebbe stare. Le nostre finestre galleggianti rimarranno sul loro livello. Sono automaticamente nascoste quando la vostra applicazione passa in secondo piano e mostrate automaticamente quando vengono davanti (se volete, nel vostro programma, potete cambiare questo aspetto).


  • Finestre Foglio

    foglio


    In OS X, una finestra foglio può scendere dalla barra del titolo di una finestra genitore. Vi mostreremo come.


  • Finestre con barra strumenti

    barra 
strumenti


    Questo è notevole! Potete fare clic nel bottone strumenti nella barra del titolo per aprire o chiudere una barra strumenti.


  • Sfondi Theme Appearance

    sfondo


    Potete impostare i sofisticati sfondi disponibili in OS X. quando lo stesso programma gira sotto OS 9, lo sfondo grigio a strisce passa automaticamente al noto grigio. È tutto gestito da una semplice nuova sintassi: DEF SETWINDOWBACKGROUND.


  • Parametri WINDOW estesi

    Chi si è lamentato perché ci sono solo 256 finestre? Con l'istruzione APPEARANCE WINDOW statement, tale limite è ora 2,147,483,647.

    La categoria di finestra (solitamente chiamata classe di finestra) può ora essere un intero long - anche un OSType. Si può impostare la categoria con: DEF WINDOWCATEGORY(wNum&, category&)

    Quando si crea una finestra appearance, si imposta un attributo ed un parametro classe che determina cose come il livello in cui si muove la finestra e gli strumenti che sono contenuti nella barra del titolo. Sarà una finestra galleggiante con il titolo su un lato? Sarà una finestra documento con un bottone strumenti e un pulsante zoom orizzontale? Potrà collassare nel dock OS X? Sarete voi a deciderlo.


  • Posizioni di finestra

    Eravamo abituati a due opzioni: centrare una finestra o calcolare manualmente la sua posizione in coordinate globali. Le finestre si possono ora creare o riposizionare usando costanti di sistema con l'aiuto di due nuovi comandi:
    DEF WINDOWREPOSITION e DEF NEWWINDOWPOSITIONMETHOD

    I parametri includono elementi come:
    _kWindowCenterOnMainScreen,
    _kWindowCascadeOnMainScreen,
    _kWindowAlertPositionOnMainScreen

    Volete calcolare la posizione delle finestre nel vostro codice? Possiamo aiutarvi anche qui. La nuova funzione FBGETSCREENRECT calcola l'area disponibile per voi.


  • Shazoooom

    Quando la vostra finestra si apre, non accontentatevi della solita apertura. Fatela comparire da una specifica area dello schermoš come un bottone che l'utente ha appena premuto. Questo è ora possibile con la nuova chiamata DEF TRANSITIONRECT.


  • Grafica Bufferizzata

    La più grande novità di OS X è probabilmente l'elegante modo in cui le finestre vengono bufferizzate. Tutto viene fatto fuori schermo (off screen) e portato in vista in modo elegante. Qualcuno potrebbe chiamarla una buona cosa, ma se volete forzare lo schermo per mostrare nuove informazioni, potreste andare in contro ad alcuni problemi. Con FLUSHWINDOWBUFFER, disegnate quello che volete e poi scaricate il buffer inviandolo allo schermo.


  • Nuove funzioni WINDOW

    Con tutte queste nuove caratteristiche delle finestre, dovete sapere che vi diamo altri strumenti per scovare quello che cercate. La funzione estesa WINDOW ora fornisce informazioni relative non solo all'area del contenuto della finestra ma anche riguardo l'area della sua struttura. Potete estrarre i puntatori agli indirizzi della finestra o della grafport (che sono ora cose distinte nelle API Carbon). Estrarre la classe, gli attributi, la categoria. È tutto qui.



  • [ritorna all'inizio]

    Codice di supporto
    Molte delle chiamate toolbox a cui eravamo abituati non funzionano più come ci si potrebbe aspettare. Niente paura! FB è già pronto con del codice di supporto per aiutarci. Le più importanti aggiunte sono FN INVALRECT e FN VALIDRECT (per sostituire CALL InvalRect e CALL ValidRect che Apple ha rimosso dal nuovo Carbon Toolbox). Tali routine funzioneranno in ogni occasione, da 68K a Carbon, senza lavoro aggiuntivo da parte vostra.



    [ritorna all'inizio]

    Menu
  • Menu contestuali

    Menu ContestualeVi mostreremo come creare un menu contestuale al volo (è un menu che compare quando fate control-clic su un'area sensibile di una finestra).

    Abbiamo anche creato un nuovo evento DIALOG(_cntxtMenuClick) in modo che possiate sapere quando creare e visualizzare il menu.


  • Posizionamento menu in OS X

    Prima tutto era semplice... L'elemento Esci è sempre stato in fondo al menu Archivio e l'elemento Preferenze in fondo al menu Composizione. Questo non è più vero in X perché questi due elementi sono stati spostati nel menu Applicazione. Questo rappresenta un incubo da programmare. I programmi che girano in OS 9 mettono i menu da una parte e in OS X in un'altra. Questo è un incubo per i programmatori degli altri linguaggi. Con FB, lasciamo fare tutto questo all'ambiente di esecuzione. MENU PREFERENCES muoverà l'elemento preferenze nella giusta posizione e si assicurerà che la routine di gestione del menu riceva lo stesso valore di ID di menu e di elemento sia sotto OS 9 che sotto X. Anche il menu Esci è gestito in modo automatico.



  • [ritorna all'inizio]

    Preferenze
    Ci sono solo due motivi per non memorizzare le informazioni in un file preferenze: il vostro programma è più piccolo della punta di uno spillo oppure è solamente troppo difficile farlo. FB ora fornisce tutto l'aiuto di cui avete bisogno per creare e mantenere i file preferenze. Dateci un nome di file e un record preferenze e noi faremo il resto. Le nuove istruzioni sono GET PREFERENCES (per leggerli dal programma), PUT PREFERENCES (per registrarle su disco), e KILL PREFERENCES (per eliminare il file). FB si cura di tutto il lavoro necessario a individuare la corretta cartella preferenze in qualsiasi versione del software di sistema anche su sistemi internazionali (perché, lo sapete, questi stranieri non chiamano mai i loro file come i nostri).



    [ritorna all'inizio]

    File Header
    Se inviate un file a qualcuno e le sue preferenze sono impostate a valori differenti, il file spesso non funziona correttamente. La nuova opzione di menu File Header inserisce commenti visibili e capibili all'inizio della vostra finestra di codice sorgente. I commenti sono letti dall'editor quando esegue o crea il programma e sono usati per sostituire temporaneamente le relative preferenze. Il risultato è che il programma funzionerà indipendentemente dalle impostazioni delle preferenze sull'altro computer.



    [ritorna all'inizio]

    Ricerca di Errori
    Abbiamo raffinato la ricerca di errori con ogni versione, e la Versione 6 non è un'eccezione, ma c'è un'incredibile nuova caratteristica: il controllo di validità delle toolbox.
    Pref Nella programmazione PPC è possibile usare una toolbox (come certe nuove chiamate toolbox per QuickTime 5) e tutto funziona perfettamente. Ma non appena lo stesso programma gira su un'altra macchina che ha QuickTime 4, questo si pianta e noi rimaniamo a scervellarci per capire cosa sia andato storto.
    La nuova soluzione è impostare una preferenza nell'editor che forza il controllo di ogni chiamata toolbox mentre la vostra applicazione si avvia. Se c'è qualche occorrenza toolbox mancante, il programma informerà prudentemente l'utente dell'errore e gli darà la possibilità di uscire.



    [ritorna all'inizio]

    Cursori
    Un cursore vale più di mille parole. È un puntatore che usiamo al posto delle nostre dita. E abbiamo una manciata piena di nuovi indicatori.


  • Cursori animati

    I cursori animati costituivano un compito complesso che comportava l'impostazione di un task VBL o il controllo ravvicinato di un contatore di tick e l'aggiornamento del puntatore al momento giusto. Ora possiamo impostare il tipo di cursore a _themeCursorAnimate e lasciare che se ne occupi il sistema.


  • Più scelta

    Se siete stanchi dei vecchi cursori a croce, a trave I, a freccia, gradirete la nuova collezione:

    cursori

    La funzione SYSTEM è anche disponibile per un aiuto aggiuntivo. Un nuovo parametro (_lastCursType) ci comunica se il cursore è animato (_themeCursorAnimate) o statico (_themeCursorStatic).



  • [ritorna all'inizio]

    ON FINDERINFO
    Individuare quali file erano stati trascinati sulla nostra applicazione o dove erano stati oggetto di un doppio-clic è sempre stato un problema. Con il nostro nuovo vettore FINDERINFO, potete far sì che l'ambiente di esecuzione notifichi quando ci sono dei file che devono essere aperti.



    [ritorna all'inizio]

    File
    Tutto è cambiato. Le API Carbon non accettano più come parametri i numeri di riferimento di volume di file a cui eravamo abituati. Quindi potete semplicemente buttare via tutto il vostro codice di gestione file e riscrivere tutto da zero... stiamo scherzando! L'ambiente di esecuzione Standard BASIC conserva la piena operatività di tutto il vostro codice conservando una lista dei corretti valori e mettendoli, in modo trasparente, in funzioni aggiornate in modo che i vostri programmi possano funzionare senza modifiche.


  • Record File Spec

    Quando sarete pronti a passare i vostri programmi (e il vostro modo di pensare) ai nuovi Record File Spec, FB sarà lì con un vagone di nuove chiamate per aiutarvi. La funzione FILES$ è stata potenziata per includere parametri come _FSSpecOpen, _FSSpecOpenPreview e _FSSpecSave.


  • Nuove routine di supporto file

    Ci sono un sacco di cose che vorreste poter fare ma vi sembrano troppo complesse. Le nostre nuove routine vi aiuteranno a spostare i file, a copiarli, a controllare se un file esiste, a mandare un file nel cestino e altro. C'è anche una routine che cerca in una cartella la presenza di determinati file.


  • Funzioni aggiuntive SYSTEM

    Sono stati aggiunti nuovi parametri alla funzione SYSTEM. Uno fornisce il numero di riferimento di volume del processo in esecuzione e un altro il parentID. Potete usare questi per creare un record file spec per la cartella dell'applicazione.


  • Nuovi parametri OPEN

    I record File spec possono essere usati con l'istruzione OPEN al posto del nome di file usando il simbolo @ come identificatore.

    OPEN "O",#1,@mioRecordFSSpec



  • [ritorna all'inizio]

    Campi composizione
    Nell'ambiente d'esecuzione Appearance ci sono due tipi di campi composizione. Il primo è un bottone creato usando l'istruzione APPEARANCE BUTTON. Questi sono campi in qualche modo limitati in quanto non possono contenere stili multipli. Sono particolarmente indicati per usi limitati come finestre di dialogo che accettino l'inserimento di testo.

    Il secondo tipo di campo viene creato con l'istruzione EDIT FIELD (proprio come ai vecchi tempi, eh?) Quello che potrebbe sfuggire è che anche questi sono bottoni - un tipo veramente speciale di bottone. Abbiamo usato lo stesso meccanismo dei bottoni ma abbiamo sostituito un vero campo composizione in quello che viene chiamato un pannello utente. I vantaggi sono enormi come potete vedere leggendo a riguardo dei bottoni.


  • Nuovi comportamenti

    Ora che siamo entrati nel mondo moderno dobbiamo adottare alcune pratiche moderne. La prima è fare uso degli rettangoli di focus. Sono quei rettangoli di evidenziazione che compaiono attorno ai campi di composizione e agli altri elementi per identificarli come obiettivo delle azioni di tastiera. Questo, in modo predefinito, è gestito automaticamente dall'ambiente di esecuzione Appearance. Ma è possibile modificare le impostazioni predefinite usando nuovi attributi del campo quando questo viene creato. Ad esempio, potete dire a Appearance Manager di non disegnare il focus in un particolare campo con _noDrawFocus. Potete evitare l'elegante contorno 3D ed usare un bordo semplice con _usePlainFrame. Potete anche impostare il campo in modo che diventi grigio automaticamente (o no) quando la finestra viene disabilitata.


  • OK. Copia questo

    Un nuovo tipo di campo, con un attributo chiamato _copyOnlyFramed (o _copyOnlyNoFramed), fa sì che il programma mostri dei dati che l'utente possa selezionare e copiare, ma non cambiare.


  • Procedura filtro tastiera

    Un solo, potente nuovo parametro è stato aggiunto all'istruzione EDIT FIELD: un puntatore a procedura. Alla fine di tutti gli altri parametri si può aggiungere @FN mioFiltroTasti e ogni pressione di tasto passare alla vostra funzione prima di essere inserita nel campo. Il vecchio ON EDIT FN funzionerà ancora, ma una volta che avrete imparato ad usare il nuovo metodo vedrete che questo è ben più raffinato!


  • Disabilitare e altro

    Un campo può essere disabilitato usando l'istruzione EDIT FIELD con un parametro negativo (EDIT FIELD -1). I numeri di campi, come per i bottoni e le finestre, sono limitati a circa 2 miliardi. Ed ora un trucco: i tipi OSType sono in effetti interi long, e quindi un numero di riferimento ad un campo di composizione può in effetti essere qualcosa come _"Name".



  • [ritorna all'inizio]

    Campi immagine
    I nuovi campi immagine sfruttano tutti i vantaggi dei nuovi campi di composizione oltre a nuovi appositi trucchi. Si possono impostare nuovi attributi per rendere un'immagine cliccabile e/o invertibile quando viene cliccata. Un altro parametro rende l'immagine trasparente in modo che le parti bianche dell'immagine lascino intravedere lo sfondo.



    [ritorna all'inizio]

    Bottoni
    Questo è un mondo completamente nuovo. Ogni cosa è un bottone. Potete usare l'istruzione APPEARANCE BUTTON per disegnare immagini, icone, linee, pannelli, menu pop-up, barre avanzamento, campi data/ora, slitte, e... ah, già, i bottoni.


  • L'unione fa la forza

    Un nuovo insieme di comandi permette di includere un bottone in un altro. Il vantaggio in questo caso è che agendo sul bottone genitore tale azione si estende automaticamente a tutti i bottoni inclusi.
    linguettePrendete i bottoni con i pannelli a linguetta come esempio. Un singolo pannello corrisponde ad ogni linguetta (anche i pannelli sono bottoni). Quindi tutti gli elementi visibili in tale pannello vengono inclusi. Si può ripetere questa operazione per tutte le linguette. Il risultato finale è che se si rende visibile un solo pannello tutti i bottoni, campi, linee, ecc. inclusi vengono automaticamente resi visibili. Un piccolo frammento di codice nella vostra routine dei bottoni farà cose incredibili.

    FB ci aiuta nel processo di inclusione? Ci potete scommettere. Il vostro programma usa DEF EMBEDBUTTON per iniziare il processo. Potete (se serve) trovare chi sia il genitore di un bottone e indicizzare tutti i bottoni inclusi in un genitore. Questo aiuta anche a tenere traccia dei bottoni radio.


  • Nuovi parametri BUTTON

    In passato la funzione BUTTON accettava solo un parametro - il numero di riferimento del bottone. La nuova funzione BUTTON ne accetta due: il numero di riferimento del bottone e un selettore per determinare quale dei molti tipi di informazioni sono richieste dal programma. Ci sono più di una dozzina di nuovi parametri per estrarre informazioni come i valori minimo e massimo del controllo, il controllo radice (root) della finestra, la data o l'ora del controllo (per i bottoni data/ora), l'handle del menu per menu pop-up e il TEHandle per controlli di tipo campo composizione.

    listaFra gli altri strumenti ricordiamo una potente istruzione chiamata DEF GETBUTTONDATA e elementi relativi al testo come DEF GETBUTTONTEXTSELECTION (qualcuno si è accorto che questi nomi stanno diventando più lunghi della durata delle batterie del coniglietto della pubblicità?).

    Slitte La versione 6 offre lo spettro completo delle possibilità dei bottoni Appearance Manager. Abbiamo realizzato questo con la nuova istruzione APPEARANCE BUTTON. Essa dà al vostro programma l'accesso diretto a tutti i parametri usati nella chiamata toolbox NewControl e abbiamo fornito ogni costante dell'ultima documentazione Apple per il vostro piacere. Non vi diamo uno o due tipi di slitte - vi diamo tutti i tipi che volete.


    Spunta

    Anche i pulsanti di spunta sono un po' migliorati, accettando una modalità di selezione mista.


  • Aspetta
    attesa

    Presto o tardi, il vostro Caro Utente dovrà aspettare mentre il vostro programma processerà qualche tipo di informazione importante. Avete già visto i cursori animati che possono essere utilizzati (dita che contano, palle da spiaggia rotanti, lancette di orologio animate) ma sono disponibili altri tipi di indicatori. Una piccola area può essere riservata nelle vostre finestre per le frecce che si inseguono o volete impostare una barra di avanzamento in una finestra di dialogo. Potrebbe essere più facile? Sì. Questi indicatori si animano da soli. Wow! Ora vado a convertire la mia unità moglie in un bottone!


  • Scusa hai l'ora?
    orario

    L'inserimento di date e orari è ormai dilagante in tutte le nuove applicazioni. E ogni programmatore lo tratta in modo differente. Questo è il motivo per cui abbiamo aggiunto i bottoni data/ora e tutte le funzioni di utilità necessaria ad ottenere il contenuto di tali controlli. Puoi creare i controlli che mostrino e aggiornino automaticamente l'orario (come un orologio o un calendario). Puoi usare solo mese e anno (come per la validità delle carte di credito). Potete estrarre ogni parte delle informazioni dal controllo come il giorno della settimana o l'intero testo dell'orario selezionato dall'utente.



  • [ritorna all'inizio]

    È tutto?
    Prendete tutto quello che avete letto e moltiplicatelo per mille perché queste sono le opzioni che avete realmente. Prendete i pannelli a linguetta: guardate le immagini e leggete il testo e pensate, "Wow! Questo è forte!". Ma non vi abbiamo detto che le linguette possono essere grandi o piccole,dirette a nord, sud, est, ovest.
    Non abbiamo parlato dei nuovi parametri della funzione SYSTEM come quello che restituisce la velocità della CPU. Abbiamo saltato a piè pari nuove funzioni di utilità come FN FBGETCONTROLRECT. Non abbiamo fatto menzione al fatto che sono disponibili nuovi record, facilmente accessibili, che forniscono tutte le informazioni che potete immaginarvi per bottoni e finestre. Abbiamo saltato la parte relativa ai nuovi messaggi di dialogo che comunicano quando il cursore è sopra ad un campo immagine o a un campo composizione. E il supporto di PG:Pro. Ci sono anche centinaia di nuove chiamate toolbox. Vi ho parlato dei nuovi parametri di colore per l'istruzione EDIT TEXT?

    Se volete conoscere tutte le altre cose che abbiamo saltato, dovete dare un'occhiata alla Versione 6. Divertitevi!


      © 2000 Pix&Mix
      tutti i diritti riservati
    INFO  |  ACQUISIRE  |  MAPPA  |  RISORSE

      FutureBASIC è un marchio registrato di Staz Software, Inc ed è usato previa autorizzazione.