Все зависит от библиотеки... некоторые дают возможность определять момент нажатия на экран, некоторые оставляют это на вас.
Сделал библиотеку первого вида:
Функции:
ptr_update - обновляет состояния (нужен для использования ptr_pressed \ ptr_released)
ptr_clear - сбрасывает переменные, отвечающие за нажатие на экран
ptr_x, ptr_y - возращают текущие координаты
ptr_down - возращает нажат ли "курсор" в данный момент
ptr_pressed - возращает, был ли нажат курсор с момента предыдущего вызова ptr_update
ptr_released - возращает, были ли отпущен курсор с момента предыдущего вызова ptr_update
ptr_events - возращает, поддерживает ли телефон сенсорный ввод
ptr_motion - возращает, поддерживает ли телефон "события движения" (отслеживание положения курсора пока он нажат)
Пример программы:
program t;
uses pointer;
var f: integer;
begin
f := 64;
repeat
ptr_update;
setColor(f, f, f);
fillRect(0, 0, getWidth, getHeight);
if (f < 128) then setColor(255, 255, 255) else setColor(0, 0, 0);
drawText('X: ' + ptr_x + '; Y: ' + ptr_y, 0, 0);
if ptr_pressed > 0 then f := Random(255);
rePaint;
delay(32);
forever
end.
Добавлено:
Пример на Lib_sensor:
program t;
uses sensor;
var f: integer;
ptr_state, ptr_state0, ptr_pressed, ptr_released: boolean;
procedure ptr_update; begin
ptr_state := pointer_state > 0;
ptr_pressed := (ptr_state xor ptr_state0) and ptr_state;
ptr_released := (ptr_state xor ptr_state0) and ptr_state0;
ptr_state0 := ptr_state;
end;
begin
f := 64;
init;
repeat
ptr_update;
setColor(f, f, f);
fillRect(0, 0, getWidth, getHeight);
if (f < 128) then setColor(255, 255, 255) else setColor(0, 0, 0);
drawText('X: ' + pointer_dragged_x + '; Y: ' + pointer_dragged_y, 0, 0);
if ptr_pressed then f := Random(255);
rePaint;
delay(32);
forever
end.