Уроки, Туториалы, Мануалы со всего света!

На этом форуме, будет находится огромное количество уроков и мануалов, сделайте небольшой вклад, и опубликуйте хотя бы один урок.
Текущее время: 17-10, 19:09

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: 14-03, 16:56 
Не в сети
Пока что, только учусь!
Аватара пользователя

Зарегистрирован: 13-03, 17:36
Сообщения: 5
Передвижение текста.

Итак, в этом уроке я научу вас передвигать текст с помошью клавиш.
Нам нужно 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

_________________
Изображение
Изображение
Изображение
Изображение


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by Forumenko © 2006–2014
Русская поддержка phpBB