Передвижение текста.
Итак, в этом уроке я научу вас передвигать текст с помошью клавиш.
Нам нужно 3 переменные типа Integer: координаты x,y и KeyCode-код нажатой клавиши.
Код:
var
x,y,KeyCode:integer;
Делаем цикл чтобы программа выполнялась до тех пор, пока не будет нажата клавиша "0"
Repeat
тут после будут наши командыuntil keyCode = KE_KEY0;
Внутри цикла пропишем команду получения кода клавиши.
keycode:=GetKeyPressed
GetKeyPressed - Получает код нажатой клавиши в данный момент.
ke_key0-это код клавиши 0.(Все коды будут приведены ниже).
Теперь пропишем команды для стрелок(внутри цикла).
if KeyToAction(keyCode) = GA_UP then y := y - 5;
if KeyToAction(keyCode) = GA_DOWN then y := y + 5;
if KeyToAction(keyCode) = GA_LEFT then x := x - 5;
if KeyToAction(keyCode) = GA_RIGHT then x := x + 5;
То есть: при нажатии определенной стрелочки мы изменяем координату x или y на определенное кол-во пикселей(чем больше, тем быстрее будет двигаться текст).
Установим цвет в черный:
SetColor(0,0,0)
Теперь нужно очистить экран. Для этого просто нарисуем прямоугольник на весь экран. Прямоугольник рисуется командой FillRect(x1,y1,x2,y2)
где x1,y1-координаты верхней левой вершины прямоугольника, а x2,y2-координаты правой нижней вершины прямоугольника.
Разрешение у телефонов разное, поэтому цифрами задать нижнюю координату не получится.
С помошью процедур GetWidth и GetHeight узнаем максимальное X и максимальное y соответственно.
Итак, пропишем команду очистки экрана:
FillRect(0,0,GetWidth,GetHeight);
Теперь установим цвет в красный:
SetColor(255,0,0)
Выведем текст на экран в позиции x,y (которую мы изменяли с помощью клавиш)
DrawText('Специально для lessons.flybb.ru',x,y)
Выводим виртуальный экран на реальный:
Repaint
И небольшая задержка:
Delay(100)
Всё это должно быть в цикле!
Полный листинг:
Код:
program MoveText;
var x, y: integer;
keyCode: integer;
begin
repeat
keyCode := GetKeyPressed;
if KeyToAction(keyCode) = GA_UP then y := y - 5;
if KeyToAction(keyCode) = GA_DOWN then y := y + 5;
if KeyToAction(keyCode) = GA_LEFT then x := x - 5;
if KeyToAction(keyCode) = GA_RIGHT then x := x + 5;
SetColor(0, 0, 0);
FillRect(0, 0, GetWidth, GetHeight);
SetColor(255, 0, 0);
DrawText('Специально для lessons.flybb.ru', x, y);
Repaint;
Delay(100);
until keyCode = KE_KEY0;
end.
Вот и все!
Приложение. Коды клавиш
KE_KEY0
KE_KEY1
KE_KEY2
KE_KEY3
KE_KEY4
KE_KEY5
KE_KEY6
KE_KEY7
KE_KEY8
KE_KEY9
KE_STAR
KE_POUND
GA_UP
GA_DOWN
GA_LEFT
GA_RIGHT