Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2015, 17:57   #1
ЛЕСЯ*
Новичок
Джуниор
 
Регистрация: 18.05.2015
Сообщений: 2
По умолчанию Pascal ABC : Нарисовать пузырьки, поднимающиеся вверх

НАПИШИТЕ ПРОГРАММУ,ГДЕ ПУЗЫРЬКИ ПОДНИМАЮТСЯ ВВЕРХ,ОГРОМНОЕ СПАСИБО!!!
ЛЕСЯ* вне форума Ответить с цитированием
Старый 18.05.2015, 19:17   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Написал.
Код:
unit UnPuzyr;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
tPuz=record
 X,Y,r:Integer;
 col:TColor;
end;

var
  Form1: TForm1;
  puzyr:array[1..20] of TPuz;
const
  DY=20;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i:Byte;
const CCOLOR:array[0..7]of TColor=(clRed,clGreen,clBlue,clBlack,clLime,clYellow,clGray,clPurple);
begin
 for i:=1 to 20 do
  begin
   puzyr[i].col:=CCOLOR[Random(8)];
   puzyr[i].X:=Random(Width);
   puzyr[i].Y:=Height+Random(Height);
   puzyr[i].r:=10+Random(Width div 6);
  end;
 Timer1.Enabled:=True; 
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var i:Byte;
begin
  Canvas.FillRect(Canvas.ClipRect);
  for i:=1 to 20 do
   begin
    if (puzyr[i].Y>0)
     then puzyr[i].Y:=puzyr[i].Y-DY
     else puzyr[i].Y:=Height+Random(Height);
    if (puzyr[i].Y>0)and(puzyr[i].Y<Height)
     then begin
           Canvas.Pen.Color:=puzyr[i].col;
           Canvas.Ellipse(puzyr[i].X-puzyr[i].r,puzyr[i].Y-puzyr[i].r,puzyr[i].X+puzyr[i].r,puzyr[i].Y+puzyr[i].r);
          end
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Timer1.Interval:=100;
 Timer1.Enabled:=False;
 Canvas.Pen.Width:=2;
end;

initialization
 Randomize;
end.

Последний раз редактировалось type_Oleg; 18.05.2015 в 19:44.
type_Oleg вне форума Ответить с цитированием
Старый 18.05.2015, 19:47   #3
ЛЕСЯ*
Новичок
Джуниор
 
Регистрация: 18.05.2015
Сообщений: 2
По умолчанию

мне надо в abc паскаль
ЛЕСЯ* вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal ABC. Нужно, чтобы человечек двигал рукой вверх и вниз... андрей161 Паскаль, Turbo Pascal, PascalABC.NET 1 20.05.2014 11:53
Passcal ABC. нарисовать круг, который периодически будет менять цвета. Москаль Помощь студентам 1 21.12.2013 11:09
Нарисовать лягушку которая прыгает по экрану в Pascal ABC vadiprog Помощь студентам 1 04.01.2012 10:02
пузырьки grimm_jow Общие вопросы C/C++ 1 31.01.2010 20:00