Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Вопросы начинающих программистов
Перезагрузить страницу Приложение "Песочные часы" Делфи
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Anya13 Anya13 вне форума
Новичок
 
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.04.2013
По умолчанию Приложение "Песочные часы" Делфи - 18.07.2013, 12:45

необходимо переделать программу песочных часов с использованием конструктора (не ставя кнопки на форму). помогите,пожалуйста ,с созданием класса
delphi Код:
{$R *.dfm}
const PauseTime = 200;    {длительность паузы при прорисовке изображения}
      Count     = 50;    {количество песка в часах,  60 < Count < 125}
 
procedure Chasy(x,y:integer;cv:TCanvas);
var  i,j,k : integer; {переменные циклов}
begin
with cv do
 begin
  moveto(x+50, y+50);lineto(x+150,y+200);
  moveto(x+150,y+50);lineto(x+50,y+200);
  moveto(x+50,y+50);lineto(x+150,y+50);
  moveto(x+50,y+200);lineto(x+150,y+200);
  brush.Color:=clGray;
  rectangle(x+45, y+45, x+155, y+49);
  rectangle(x+45, y+201,x+155, y+206);
 {цикл рисования часов, каждый новый круг часы "переворачиваются"}
  {J = Count - верхняя граница линии песка, 125 - нижняя}
  for j := Count to 125 do
  for i := Round((2*j+50)/3)+1 to Round((2*j-550)/(-3))-1 do
  Pixels[x+i, y+j]:=clYellow; {рисуем песок}
  for k := 199 downto 199-Count do
  for i := Round((2*k-550)/(-3))+1 to Round((2*k+50)/3)-1 do
  Pixels[x+i, y+k]:=clBtnFace;         {стираем песок в нижнем конусе}
  j := 199;  {т.к. нижний конус кончается при y=200, чтобы не затереть его}
  k := Count;   {уменьшаем начальное значение J}
  while (j > 199-(125-Count)) and (k < 125) do
   begin
    {рисуем струю песка}
    for i := j downto 125 do
    if Random(10) < 6 then         {имитируем песчинки в струе песка}
    Pixels[x+100, y+i]:=clBtnFace else Pixels[x+100, y+i]:=clYellow;
   {рисуем полоску песка в нижнем конусе}
    for i := Round((2*j-550)/(-3))+1 to Round((2*j+50)/3)-1 do
    Pixels[x+i, y+j]:=clYellow;
   {стираем полоску песка в верхнем конусе (1)}
    for i := Round((2*k+50)/3)+1 to Round((2*k-550)/(-3))-1 do
    Pixels[x+i, y+k]:=clBtnFace;
   {стираем полоску песка в верхнем конусе (2)}
    for i := Round((2*(k+1)+50)/3)+1 to Round((2*(k+1)-550)/(-3))-1 do
    Pixels[x+i, y+k+1]:=clBtnFace;
    sleep(PauseTime);               {пауза и изменение переменных цикла}
    {уровень песка в верхнем конусе уменьшается быстрее, чем повышается}
    {его количество в нижнем}
    dec(j);
    inc(k, 2);
   end; {while}
 {завершение работы}
  for i := j downto 125 do         {cтираем струю песка}
  Pixels[x+100, y+i]:=clBtnFace;
 end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var x,y,i:integer;
BEGIN
 i:=0;
 repeat
 x:=clientwidth div 2-100;{координаты с учетом  размера экрана и размера часов}
 y:=clientheight div 2-155;
 Chasy(x,y,Form1.Canvas);{рисуем}
 i:=i+1;
 sleep(1000);
 until i=5;
end;
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приложение по типу "Мастер" Виталик 1 .NET 1 08.04.2012 09:01
Расширение (или приложение) "только текст"... vitvic101 Разное 0 13.11.2011 08:41
Ставлю систему "с нуля" после сбоя. Какие "работы" по тестированию железа полезны? russcand Любые вопросы от новичков 14 01.09.2011 00:27
Как написать приложение "" Таймер" Шкет .NET 9 14.06.2011 17:01
Приложение "Вести" имеет успех! kigelm IT 0 09.02.2010 15:38
У телеканала "Россия 24" появилось свое приложение для iPhone kigelm IT 1 05.02.2010 16:54
Как сделать чтобы были видны песочные часы когда что-то считается SidorovaNata .NET 5 16.03.2009 19:24
Чем может быть вызвана ошибка:"drwtsn32 exe приложение будет закрыто" ? Krasnoff Техническая поддержка 9 13.09.2008 18:12
Не запускается приложение "Intеrnet Explorer", выдает ошибку приложения. Orlojnok Любые вопросы от новичков 3 25.07.2008 07:59
Как сделать что бы курсор мышки при загрузке превращался в песочные часы toshkaexe C++ Builder 6 16.02.2007 17:20
Как сделать чтобы вместо кнопок "Да" и "Нет" высвечивалось украинсие "Так" и "Ні" Форсаж Delphi 5 19.07.2003 19:30
Курсор Песочные часы как реализовать Garik WinAPI 3 11.12.2002 14:43



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов