русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Проект «Движение шарика TShape с отражением»


Дата добавления: 2014-11-27; просмотров: 1019; Нарушение авторских прав


Постановка задачи. Проект должен реализовать движение компонента TShape в виде раскрашенного шарика с отражением от краев формы. Шаги перемещения задавайте случайным образом.

Реализация.Положите на форму панель, на нее три кнопки TBitBtn со страницы Additional: Start, Retry, Close. На эти кнопки можно поместить готовые надписи с соответствующими рисунками.

Положите на форму TShape в виде не очень большого кружка
и TTimer со страницы System. Вид формы приведен на рис. 7.

 

Рис. 7. Форма проекта «Движение шарика с отражением»

 

В разделе var опишем глобальные переменные:

var cw, ch, dx, dy, r : integer;

Переменные cw, ch хранят ширину и высоту рабочей (клиентской) области формы, т. е. без учета ее границ. Ниже приведен код.

 

unit Unit1;

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls, Buttons;

 

type

TForm1 = class(TForm)

Panel1: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

Shape1: TShape;

Timer1: TTimer;

procedure BitBtn1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

dx,dy,cw,ch,r:integer;

implementation

{$R *.dfm}

 

procedure TForm1.BitBtn1Click(Sender: TObject);

begin // Кнопка “Start”

timer1.Enabled:=true;

end;

// Зададим начальные данные

procedure TForm1.FormCreate(Sender: TObject);

begin

cw:=clientwidth;

ch:=clientheight;

randomize;

repeat

dx:=-10+random(21);

dy:=-10+random(21);

until (dx<>0)and(dy<>0);



r:=shape1.Width div 2; // Радиус шарика

shape1.Left:=cw div 2; // Начальное положение в центре

shape1.Top:=ch div 2; // формы

timer1.Enabled:=false;

end;

 

procedure TForm1.Timer1Timer(Sender: TObject);

begin

shape1.Left:=shape1.Left+dx;

shape1.Top:=shape1.Top+dy;

if (shape1.Left<0)or(shape1.Left+2*r>=cw) then

dx:=-dx;

if (shape1.top<0)or(shape1.top+2*r>=ch-panel1.Height) then

dy:=-dy;

end;

 

procedure TForm1.BitBtn2Click(Sender: TObject);

begin // Кнопка “Retry”

cw:=clientwidth;

ch:=clientheight;

repeat

dx:=-10+random(21);

dy:=-10+random(21);

until (dx<>0)and(dy<>0);



shape1.Left:=cw div 2;

shape1.Top:=ch div 2;

timer1.Enabled:=true;

end;

 

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

Timer1.Enabled:=false;

Close;

end;

end.

 

Задание. Усовершенствуйте проект так, чтобы цвет шарика задавался случайным образом, радиус тоже менялся случайно в заданном интервале.

Для задания цвета можно использовать функцию RGB:

Shape1.Brush.Color := RGB(random(256), random(256), random(256));



<== предыдущая лекция | следующая лекция ==>
Проект «Светофор» | Рисование узоров


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.068 сек.