![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Бегающие огни
Жанна © (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;