use graph as g;
use ui;
/* ======== COSTANTI ======== */
ui.keys(ui.strokes); // return keystrokes
fontSize=17 // Grandezza font
constX=50 // Costante asse X
spazioVerticale=5 // Spazio tra due righe
constY=fontSize+spazioVerticale // Costante asse Y
postesto=constY // Posizione testo in pixel
bordoX=25 // Distanza dal bordo sinistro
bordoY=20 // Distanza dal bordo in alto
padding=1 // Spazio tra il testo e il bordo
differenzaAlt=2 // Differenza di altezza
/* ======== VARIABILI ======== */
lista=["Home","Info","Prova","Altro Elemento","Esci"] // Elementi nel menu
indice=0; // E' il cursore della selezione
posizione=constY // Posizione da cui partire la stampa a video degli elementi
/* ======== GRAFICA ======== */
g.bg(0xcccccc); // Sfondo Grigio
g.full(false); // Grandezza normale
g.size(g.screen()); // Riempio tutto lo schermo
ui.mfont(["SwissA", fontSize, true, false]) // Imposto il carattere
g.font(["SwissA", fontSize, true, false]) // Imposto il carattere grafico
/* ======== FUNZIONI ======== */
// Semplice funzione che stampa a schermo
function stampa(x,y,text);
g.pen(g.black);
g.brush(g.white);
g.text(x, y, text);
g.show();
end;
// Funzione che stampa il contenuto dell'array in stile listbox
function stampaLista(listaarray);
for i=0 to (len(listaarray)-1) do
.stampa(.bordoX,.bordoY+(.postesto+(i*.constY)),listaarray[i]);
.posizione=.posizione+.constY;
end;
end;
// Disegna il rettangolo intorno alla selezione
function creaRect(idx);
g.clear();
g.pen(g.black);
g.brush(g.green);
g.rect(.bordoX-1-.padding,(.bordoY+(idx*.constY)+.differenzaAlt)-.padding,g.size()[0]-.constX+(.padding*2),(.constY+(.differenzaAlt/2))+(.padding*2));
end;
// Sposta la selezione su
function funzioneSu();
.indice--;
if .indice<0 then .indice=len(.lista)-1; end;
creaRect(.indice);
stampaLista(.lista);
end;
// Sposta la selezione giu
function funzioneGiu();
.indice++;
if .indice=len(.lista) then .indice=0; end;
creaRect(.indice);
stampaLista(.lista);
end;
// Funzione-tipo per la pressione del tasto OK
function funzioneOk();
ui.error("Hai selezionato " + .indice);
// Qui è da personalizzare
// Bisogna sostituire primafunzione, secondafunzione, terzafunzione e quartafunzione con le funzioni adatte
/*
if .indice=0 then primafunzione(); end;
if .indice=1 then secondafunzione(); end;
if .indice=2 then terzafunzione(); end;
if .indice=3 then quartafunzione(); end;
*/
// ATTENZIONE: Il numero degli if dev'essere UGUALE alla LUNGHEZZA dell'array all'inizio
end;
// Questa funzione tiene in vita il programma leggendo i tasti premuti
function idle();
do
tasto=ui.cmd(-1);
if tasto=ui.upkey then funzioneSu(); end; // su
if tasto=ui.leftkey then funzioneSu(); end; // sinistra-su
if tasto=ui.downkey then funzioneGiu(); end; // giu
if tasto=ui.rightkey then funzioneGiu(); end; // destra-giu
if tasto=ui.gokey then funzioneOk(); end; // ok
until false;
end;
/* ======== INIZIO ======== */
creaRect(indice); // Creo il rettangolo di selezione
stampaLista(lista); // Stampo la lista
idle(); // Tengo in vita il programmase ci sono miglioramenti da fare segnalatelo pure, anche perchè l'ho buttato giù in poche ore, il che può far si che ci siano degli errori nel codice.
Download file
-
disegno.txt (3,11K)
Numero di downloads: 16
Messaggio modificato da madhacker il 14 luglio 2009 - 12:26

Aiuto














Pubblicità