Abfragen von Touch-Tabellen
STD_TCHOBJ%(TCHTBL%[])
Die Funktion STD_TCHOBJ vergleicht die Touch-Koordinaten mit den in TCHTBL definierten rechteckigen Bereichen und gibt den Objektcode des berührten Bereiches zurück. Wurde kein Bereich berührt, so wird -1 zurückgegeben.
Die Einträge in der Touch-Tabelle sind folgendermaßen aufgebaut:
CONST tchtbl=(<objcode>, <touchfunc>, <x1>,<y1>,<x2>,<y2>,
<objcode>, <touchfunc>, <x1>,<y1>,<x2>,<y2>,
...
-1) |
Ist der Objektcode -2, so wird das aktuelle Element nicht abgefragt, ist er -1, so wird die Abfrage abgebrochen. Jede Touch-Tabelle hat daher mit dem Objektcode -1 zu enden.
Es können bis zu acht verschiedene Touch-Funktionen verwendet werden. Dazu können der globalen Variablen std_tchstd_tch_t mit dem entsprechenden Index Funkionszeiger des Typs func!(x1,y1,x2,y2) zugewiesen werden. std_tch[0] verweist per Default auf TOUCHED!.
Beipiel:
CONST tchtbl=(1, 1, 0,0,159,19,
10, 0, 0,20,78,159,
11, 0, 20,159,159,
-1)
std_tch[1]=FUNC(BTNTOUCH!)
DO
SYS 2
CASE SELECT STD_TCHOBJ(tchtbl)
CASE 1: end 0
CASE 10: PRINT "left half touched"
CASE 11: PRINT "right half touched"
ENDCASE
LOOP WHILE TRUE |
|