Мячик, отскакивающий от границ окна

Мячик, отскакивающий от границ окна

Расположите на форме два компонента Shape1: TShape с вкладки Additional и Timer1: TTimer с вкладки System.

В инспекторе объектов (Object Inspector) выставьте начальные значения для каждого компонента

Shape1
 Left: 10 (отступ слева)
 Top: 10  (отступ сверху)
 Width: 20  (ширина шарика)
 Height: 20  (высота шарика)
 Shape: stCircle;  (вид фигуры - круг)

Timer1
 Interval: 30 (скорость вызова процедуры движения 0.030 c)

Теперь в инспекторе объектов переключитесь на вкладку Events и для компонента TTimer задайте название процедуры OnTimer (лучше это сделать автоматически кликнув два раза в пустом поле)

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 // движение - изменение положения шарика
 Shape1.Left :=  Shape1.Left + dx;
 Shape1.Top  :=  Shape1.Top + dy;
 // проверка на выход за границы формы
 if (Shape1.Left + Shape1.Width >= Form1.ClientWidth) or (Shape1.Left <= 1) 
  then dx := -dx; // если достигли границы меняем направление
 if (Shape1.Top + Shape1.Height >= Form1.ClientHeight) or (Shape1.Top <= 1) 
  then dy := -dy; // если достигли границы меняем направление
end;

В окне кода не забыть проинициализировать значение переменных dx, dy начальными значениями. В разделе Var прописываем

var
  Form1: TForm1;
  dx: integer = 5; // приращение движения по X, Y 
  dy: integer = 5;

Запустите программу. Run.

СКАЧАТЬ ПРОГРАММУРазмер
Демо-урок: Мячик, отскакивающий от границ окна (1017)387 кб

Последние комментарии

  • http://ziter.ru/index.php?productID=3751 http://eur-style.ru/product/713 http://samaram.ru/product/nemnogo-o-napolnyh-chasah http://salonturov.ru/index.php?productID=43345
  • What Do Installment Loans Present Themselves? In case if one feels need in ready money straight away, the best method to get it is to turn to installment loans that have historically been known as the most efficient and timely for enormous buyings. Installment loan constitutes a close-end loan,...
  • ОСТАЛОСЬ ВСЕГО 15 ДЕНЕЖНЫХ БОНУСОВ! ВЫПЛАЧЕНО БОЛЕЕ 4 000 000 РУБЛЕЙ ! ---http://link.futbol/8lko

Счетчики