Основы языка Delphi

79b4045b

Движущаяся окружность



Листинг 10.8. Движущаяся окружность

unit mcircle_;

interface

uses

Windows, Messages, SysUtils, Classes,

Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls;

type



TForm1 = class(TForm) Timer1: TTimer;

procedure Timer1Timer(Sender: TObject};

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

implementation

{$R *.DFM}

var

Form1: TForml;

x,y: byte; // координаты центра окружности

dx: byte; // приращение координаты x при движении окружности

// стирает и рисует окружность на новом месте

procedure Ris;

begin

// стереть окружность

form1.Canvas.Pen.Color:=form1.Color;

form1.Canvas.Ellipse(x,y,x+10,y+10);

x:=x+dx;

// нарисовать окружность на новом месте

form1.Canvas.Pen.Color:=clBlack;

form1.Canvas.Ellipse(x,y, x+10, y+10) ;

end;

// сигнал от таймера

procedure TForm1.Timer1Timer(Sender: TObject);

begin Ris; end;

procedure TForm1.FormActivate(Sender: TObject);

begin

x:=0;

y:=10;

dx:=5;

timer1.Interval:=50;

// период возникновения события OnTimer —0.5 сек

form1.canvas.brush.color:=forml.color;

end;

end.

Основную работу выполняет процедура Ris, которая стирает окружность и выводит ее на новом месте. Стирание окружности выполняется путем перерисовки окружности поверх нарисованной, но цветом фона.

Для обеспечения периодического вызова процедуры Ris в форму программы добавлен невизуальный компонент Timer (таймер), значок которого находится на вкладке System палитры компонентов (Рисунок 10.16). Свойства компонента Timer, перечислены в табл. 10.9.



Содержание раздела