МОУ СОШ №3 г. Осташков Тверская обл.
  
 
 
 
 

Мини-проекты в Delphi

Проект «Имитация бросания кубика»

Класс TStaticText-используется для отображения надписей,  а объект класса TTimer для отсчета промежутков времени. В этом проекте на 6 объектах TStaticText будут  числа от 1 до 6.  Они будут менять свой цвет по часовой стрелке, а выпавшее число (объект TStaticText) выделится, например, красным цветом.
Начнем с формы.  Ее размер 600*600. на ней разместим невидимый объект Timer1, для которого зададим свойство Interval = 330 мс и  объект StaticText1. Для него изменим текст на «1», ширина и высота по 80,  шрифт Arial – полужирный, размер – 48. Скопируем объект StaticText1 и произведем вставку 5 раз. Расположим их по кругу. В центре расположим кнопку TButton с надписью «Пуск». Для удобства работы с объектами изображающими цифры от 1 до 6 создадим массив объектов. В разделе private объявим массив numb:array [0..5] of ^TStaticText;
Здесь же объявим две переменные, которые нужны для хранения значений выбранного числа и отображаемого на экране.
n,k:byte;
А перед этим разделом объявим процедуру инициализации этого массива –
procedure Initnumb;
Саму процедуру запишем раздел implementation ниже {$R *.dfm}
procedure TForm1.Initnumb;
begin
numb[0]:=@StaticText1;numb[1]:=@StaticText2;numb[2]:=@StaticText3;
numb[3]:=@StaticText4;numb[4]:=@StaticText5; numb[5]:=@StaticText6;
end;
Эта процедура будет вызываться сразу после запуска программы:
procedure Tform1.FormCreate(Sender: Tobject);
begin
Initnumb;
end;
Работа программы начинается с клика мышкой по кнопке. Выбирается случайное число диапазоне от 6 до 26, номер отображаемой цифры – 0  и с помощью оператора цикла все цифры (их фон) закрашиваются белым цветом. Кнопка Button1 становится недоступной. Запускается таймер.
procedure TForm1.Button1Click(Sender: TObject);
var i:byte;
begin
randomize;
n:=random(20)+6;
k:=0;
for i := 0 to 5 do
numb[i].Color :=clWhite;
numb[0].Color:=clAqua;
Button1.Enabled :=false;
Timer1.Enabled := true;
end;
Процедура, связанная с таймером все изображает на экране до тех пор, пока k не станет равным n. При этом все повторяется через заданный интервал. Каждый раз значение k увеличивается на единицу (inc(k)). Так как объектов 6, а n может достигать 25 используется оператор mod – остаток от деления одного целого числа на другое. i- номер цифры на экране.
Фон выбранной цифры окрашивается цветом, а предыдущей – белым. Имитируется движение по кругу. Последняя оказывается на красном фоне. При этом останавливается таймер, кнопка становится доступной.
procedure TForm1.Timer1Timer(Sender: TObject);
var i: byte;
begin
if k<n then
begin
i:=k mod 6;
numb[i].Color :=clWhite;
inc(k);
i:=k mod 6;
numb[i].Color:=clAqua;
  end
else
begin

i:=k mod 6;
numb[i].Color:=clRed;
Timer1.Enabled:=false;
Button1.Enabled :=true;
  end;
end;

Эта программа может заменить кубик во многих играх.

 

 

 

 

 

 

 

 

 

 


 
О мини-проектах
Неуловимая кнопка
Вещий камень
Перетаскивание фигур
Секундомер
Градусы-радианы
Мультик
Падение тела
Прозрачная форма
Регионы
Шарик за мышкой
Таймер
Расписание уроков
Записная книжка
Задача по физике
Определение зачеркнутой цифры
Использование Microsoft Agent в Delphi
 Арифметика
 
 
 
 
 
 
 
 
 
 
 
 
 
 
             
Hosted by uCoz