I tasti estesi hanno una lunghezza di due byte, il primo byte è un carattere ESC, che può essere ignorato, ed il secondo byte è il codice virtuale del tasto. Nella versione Windows, è possibile aggiungere l'opzione per catturare tutti i tasti, compresi shift, ctrl, key, caps lock, num lock, scroll lock, e PopupMenu (se state utilizzando una tastiera specifica per Windows, non il tasto StartMenu, se esiste nella vostra tastiera). È possibile attivare/disattivare questa opzione in qualunque momento: $OPTION INKEY$ TRAPALL
' cattura tutti i tasti compresi shift, alt, ctrl, caps/num/scroll lock
' ed il tasto PopupMenu
$OPTION INKEY$ DEFAULT
' cattura tutti i tasti estesi tranne quelli sopra indicati
Se avete utilizzato QBasic, probabilmente conoscete i codici a memoria, e tutti i tasti virtuali utilizzati da Rapid-Q sono esattamente gli stessi che avete trovato in QBasic. Il codice che segue è un esempio di come catturare/dividere i tasti estesi, in particolare le frecce: DO
DO
A$ = INKEY$
LOOP UNTIL LEN(A$)
IF LEN(A$) = 2 THEN
SELECT CASE RIGHT$(A$, 1)
CASE "P"
PRINT "Premuto tasto freccia in giù."
CASE "H"
PRINT "Premuto tasto freccia in sù."
CASE "M"
PRINT "Premuto tasto freccia destra."
CASE "K"
PRINT "Premuto tasto freccia sinistra."
CASE ELSE
PRINT "Tasto esteso "; A$
END SELECT
END IF
LOOP UNTIL A$ = CHR$(27)
Anche se non conoscete i codici, potete dedurli da questo esempio.
6.6 Mescolare CONSOLE e GUI
Come avrete notato nell'esempio precedente, abbiamo mescolato alcune operazioni CONSOLE con altre GUI. Ciò è perfettamente valido fintanto che l'applicazione è stata compilata come CONSOLE. In Linux/Unix ci sono alcune strane differenze, fate riferimento alla guida sulla compatibilità per maggiori informazioni. Ad esempio, un'applicazione GUI per Linux/Unix può eseguire alcune operazioni CONSOLE come PRINT, INPUT, e CLS senza essere compilata come CONSOLE.
6.7 Console Linux/Unix
Dal momento che la maggior parte dei terminali sono diversi fra di loro, alcune funzioni console non funzioneranno. Se il vostro terminale non sopporta il colore, non sarà visualizzato. Non dovrete preoccuparvi di questi problemi, in quanto Rapid-Q esegue un controllo degli errori per voi. Lo stesso discorso vale per i caratteri estesi, che non sono supportati da alcuni terminali. Tuttavia, la maggior parte dei terminali sopportano le frecce e i tasti Page up/down. È quasi certo che questi tasti funzioneranno per la maggior parte dei terminali.