| Уроки, Туториалы, Мануалы со всего света! https://lessons.forumenko.com/ |
|
| Midlet Pascal. Передвигаем текст с помошью клавиш. https://lessons.forumenko.com/topic81.html |
Страница 1 из 1 |
| Автор: | DiAm [ 14-03, 16:56 ] |
| Заголовок сообщения: | Midlet Pascal. Передвигаем текст с помошью клавиш. |
Передвижение текста. Итак, в этом уроке я научу вас передвигать текст с помошью клавиш. Нам нужно 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_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 |
|
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |
|