Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Бегающие огни


Жанна ©   (2003-05-28 13:29:00) 

Подскажите. пожалуйста как на канве сделать бегающие огни (не мигающие, а именно бегающие) по горизонтали и по кругу. Заранее спасибо


MBo   (2003-05-28 15:38:00) [1]

Эта строка не нужна
if Counter<>0 then


MBo   (2003-05-28 15:36:00) [2]

Вот тебе моргунчик для начала.


var
Counter:Integer;
x,y:Integer;
b,empty:TBitmap;

implementation

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Counter<>0 then
BitBlt(Canvas.Handle,x,y,40,40,empty.Canvas.Handle,0,0,srccopy);
x:=150+Round(100*cos(Counter/100));
y:=150+Round(100*sin(Counter/100));
BitBlt(Canvas.Handle,x,y,40,40,b.Canvas.Handle,0,0,srccopy);
Canvas.Draw(x,y,b);
inc(Counter);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Counter:=0;
b:=TBitmap.Create;
empty:=TBitmap.Create;
empty.Width:=40;
empty.Height:=40;
empty.Canvas.Brush.Color:=color;
empty.Canvas.FillRect(rect(0,0,40,40));
b.Assign(empty);
b.Canvas.Brush.Color:=clYellow;
b.Canvas.Pen.Color:=clBlue;
b.Canvas.ellipse(0,0,40,40);
x:=250;
y:=150;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
b.free;
empty.free;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо