Nokioteca [Nokia] Forum: Tasti - Nokioteca [Nokia] Forum

Salta al contenuto

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

Tasti per i touchscreen

#1 L   Nick_7 

  • Senior Member
  • PuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 339
  • Iscritto: 20 novembre 2008
  • Località:Luna
  • Cellulare:Omnia HD
  • Firmware:I8910XXJB1

Inviato 28 febbraio 2010 - 20:19

Salve a tutti masmil1988 mi sta dando una mano per riuscire a crearli, ma incontro comunque dei problemi, ecco qui lo script:

Download file


Messaggio modificato da Nick_7 il 28 febbraio 2010 - 20:25

0

#2 L   masmil1988 

  • Millennium Member
  • Gruppo: Developer
  • Messaggi: 1576
  • Iscritto: 03 dicembre 2005
  • Località:Alcamo (TP)
  • Cellulare:Nokia 5800
  • Firmware:51.0.006

Inviato 06 marzo 2010 - 09:28

Nick ho visto il tuo codice e dava problemi di funzionamento.
Ho visto che il codice non era indentato (cioè non era rientrato nelle parti che lo dovrebbero essere), ti consiglio, per il bene del tuo codice e della tua testa che si sforza meno, di prenderti questa buona abitudine :)

Ho risolto i piccoli problemi che generavano errori (mancavano alcuni end) e ti riallego qui il codice ;)
L'ho provato e ora funziona bene :thumbs:

use graph as g, proc as p, ui;

ui.ptr(2);

class tasto
  x;
  y;
  w;
  h;
  t;

  function init(x,y,w,h,t)
	this.x=x;
	this.y=y;
	this.w=w;
	this.h=h;
	this.t=t;
  end;

  function click(coo)
	if coo[0]>x and coo[0]<x+w and coo[1]>y and coo[1]<y+h and coo[2]=0 
	  then return true;
	  else return false;
	end;
  end;

  function show()
	g.rect(x,y,w,h);
	g.text(x+10,y+20,t);
  end;
end;


t_cerchio:tasto=tasto(10,50,300,40,"cerchio");
t_quadrato:tasto=tasto(10,100,300,40,"quadrato");
t_esci:tasto=tasto(10,150,300,40,"esci");

while true do
  t_cerchio.show();
  t_quadrato.show();
  t_esci.show();
  g.show();

  coo=ui.cmd();
  if t_esci.click(coo) then
	p.stop();
  end;
end;

0

#3 L   Nick_7 

  • Senior Member
  • PuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 339
  • Iscritto: 20 novembre 2008
  • Località:Luna
  • Cellulare:Omnia HD
  • Firmware:I8910XXJB1

Inviato 06 marzo 2010 - 13:43

Ciao masmil, ti ringrazio infinitamente, l'ho testato e funziona alla perfezione! :mumble:
Vedrò di abituarmi alla indentazione perché effettivamente rende le cose molto più chiare :D

Messaggio modificato da Nick_7 il 06 marzo 2010 - 13:43

0

#4 L   Nick_7 

  • Senior Member
  • PuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 339
  • Iscritto: 20 novembre 2008
  • Località:Luna
  • Cellulare:Omnia HD
  • Firmware:I8910XXJB1

Inviato 07 marzo 2010 - 22:00

Potresti per favore commentare un pochino il codice perché non riesco per esempio a capire cosa vogliono dire le seguenti cose:
- this.*
- coo[2]=0
- t_*:*
Ti ringrazio ancora per il tempo che ci dedichi ;)
0

#5 L   masmil1988 

  • Millennium Member
  • Gruppo: Developer
  • Messaggi: 1576
  • Iscritto: 03 dicembre 2005
  • Località:Alcamo (TP)
  • Cellulare:Nokia 5800
  • Firmware:51.0.006

Inviato 08 marzo 2010 - 12:56

Spiego subito :thumbs:
I this.x, this.y, ecc... indicano che ci si sta riferendo alla x dell'oggetto, alla y dell'oggetto ecc... e non ai parametri x, y ecc...
Teoricamente invece di
if coo[0]>x and coo[0]<x+w and coo[1]>y and coo[1]<y+h and coo[2]=0

dovremmo scrivere
if coo[0]>this.x and coo[0]<this.x+this.w and coo[1]>this.y and coo[1]<this.y+this.h and coo[2]=0

in quanto ci stiamo riferendo a variabili che fanno parte dell'oggetto, però siccome in questo caso non c'è possibilità di ambiguità possiamo scrivere benissimo anche x, y senza il "this." .


Poi, nella funzione click, all'interno dell'if, il coo[2]=0 vuol dire che "il tasto è stato rilasciato".
Cioè, il pennino si è sollevato dallo schermo toccando come ultimo punto (x,y).
Se coo[2] vale 1 vuol dire che il pennino ha premuto su (x,y).

Purtroppo la guida ufficiale su questo punto è poco chiara e a dire il vero non ricordo neanche da dove sono risalito a questo. :crying_anim02:


L'ultimo punto, i t_esci, t_quadrato e t_cerchio sono soltanto dei nomi, non farti confondere dal carattere _.
La sintassi
t_cerchio:tasto=tasto(10,50,300,40,"cerchio");

vuol dire semplicemente che vuoi creare un oggetto della classe tasto col nome t_cerchio.


Spero di essere stato chiaro, se ci sono altri problemi o se sono stato poco chiaro vedrò di spiegarlo meglio :lmaosmiley:
0

#6 L   Nick_7 

  • Senior Member
  • PuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 339
  • Iscritto: 20 novembre 2008
  • Località:Luna
  • Cellulare:Omnia HD
  • Firmware:I8910XXJB1

Inviato 15 marzo 2010 - 16:30

Grazie masmil, sei stato chiarissimo solo che nell'ultimo periodo non ho molto tempo per mShell...
0

Condividi questa discussione:


Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione