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

unit mcircle_;

interface

Uses

Windows, Messages, SysUtils, Classes,

Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls;

Type

TForm1 = class(TForm) Timer1: TTimer;

procedureTimer1Timer(Sender: TObject};

procedureFormActivate(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;

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

procedureTForm1.Timer1Timer(Sender: TObject);

begin Ris; end;

procedureTForm1.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.

Рис. 10.16. Значок компонента Timer

Таблица 10.9. Свойства компонента Timer

       
  Свойство Определяет  
  Name Interval   Enabled Имя компонента. Используется для доступа к компоненту Период генерации события OnTimer. Задается в миллисекундах Разрешение работы. Разрешает (значение True) или запрещает (значение False) генерацию события OnTimer  
       

Добавляется компонент Timer к форме обычным образом, однако, поскольку компонент Timer является невизуальным, т. е. во время работы программы не отображается на форме, его значок можно поместить в любое место формы.




Компонент Timer генерирует событие OnTimer. Период возникновения события OnTimer измеряется в миллисекундах и определяется значением свойства Interval. Следует обратить внимание на свойство Enabled. Оно дает возможность программе "запустить" или "остановить" таймер. Если значение свойства Enabled равно False, то событие OnTimer не возникает.

Событие onTimer в рассматриваемой программе обрабатывается процедурой TimeriTimer, которая, в свою очередь, вызывает процедуру Ris. Таким образом, в программе реализован механизм периодического вызова процедуры
Ris.






Сейчас читают про: