Постановка задачи. В центре формы находится небольшая картинка кого-нибудь, например, гепарда. По нажатию клавиш со стрелками гепард перемещается по форме.
Реализация.Нарисуйте гепарда в графическом редакторе Paint и сохраните его в папке проекта. Загрузите его из файла как растровый рисунок типа TBitMap. Пусть координаты этого образа будут x1, y1. С помощью метода Draw выведем рисунок в центр формы.
cw:=clientwidth;
ch:=clientheight;
x1:=cw div 2;
y1:=ch div 2;
Form1.Canvas.Draw(x1,y1, bit1);
На вкладке Additional найдем компонент TApplicationEvents и положим его на форму в любое место. Он невидимый. Откроем вкладку «Events» (события), найдем событие OnShortCut и справа напротив OnShortCut кликнем дважды мышью. Откроется обработчик TForm1.ApplicationEvents1ShortCut, который возвращает переменную Msg, содержащую код нажатой клавиши. В этой процедуре опишем изменение координат х1, у1 при нажатии клавиш со стрелками. До изменения координат образ «стираем», т. е. закрашиваем цветом формы. Для закрашивания напишите свою процедуру clear(x,y:integer). После изменения координат х1, у1 образ вновь копируем на форму. Напишем код обработчика события OnShortCut:
procedure TForm1.ApplicationEvents1ShortCut(var Msg: TWMKey; var Handled: Boolean);
begin
clear(x1,y1); // Стираем образ
case Msg.CharCode of
37:if x1>dx1 then
x1:=x1-dx1; {влево}
40:if y1+30<ch-dy1 then
y1:=y1+dy1; {вниз}
38:if y1>dy1 then
y1:=y1-dy1; {вверх}
39:if x1+30<cw-dx1 then
x1:=x1+dx1; {вправо}
end;
Form1.Canvas.Draw(x1,y1,bit1); // Выводим образ
end;
В обработчике TForm1.BitBtn1Click события OnClick кнопки BitBtn1 напишем следующий код: