четверг, 13 декабря 2012 г.

Управление объектами на форме с клавиатуры и с помощью курсора

Управление объектами с клавиатуры

Для того, чтобы обрабатывать в приложении нажатие на клавиши, создадим для формы обработчик события OnKeyDown. Как видно из названия, наша процедура будет реагировать на нажатие клавиши. Созданная процедура имеет следующее описание:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
Как видно, среди прочих аргументов, здесь есть переменная Key, она позволяет узнать каая клавиша нажата. Каждая клавиша на клавиатуре имеет определенный код. Посмотреть все коды можно здесь. Для того, чтобы получить код нажатой клавиши используем функцию ord(Key). Таким образом, чтобы какой-то компонент (например, Image1:Image), расположенный на форме сместился на 10 пикселей вверх по нажатию на клавишу "вверх" (код 38), пропишем следующую команду:
if ord(Key) = 38 then Image1.Top := Image1.Top - 10;
Вопрос: почему отнимаем 10 пикселей, а не прибавляем? (Ответ в комментарии)
Задание: Создать игру для двух игроков , которые могут управлять объектами с помощью клавиш "вверх-вниз-влево-вправо" и "A-S-D-W" . Цель игры: первый игрок догоняет второго.

Перетаскивание объектов по форме с помощью мыши

Задание: создать приложение "Собери елочку"
                                                                        

1 комментарий:

  1. Потому что ось Oy на форме направлена сверху вниз. То есть при увеличение значения top объект будет опускаться, а при уменьшении - подниматься

    ОтветитьУдалить