АкушерствоАнатомияАнестезиологияВакцинопрофилактикаВалеологияВетеринарияГигиенаЗаболеванияИммунологияКардиологияНеврологияНефрологияОнкологияОториноларингологияОфтальмологияПаразитологияПедиатрияПервая помощьПсихиатрияПульмонологияРеанимацияРевматологияСтоматологияТерапияТоксикологияТравматологияУрологияФармакологияФармацевтикаФизиотерапияФтизиатрияХирургияЭндокринологияЭпидемиология

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

Прочитайте:
  1. Листинг 10.1. Стили заполнения областей
  2. Листинг 10.10. Летящий самолет
  3. Листинг 10.2. Оси координат и оцифрованная сетка
  4. Листинг 10.4. Вычерчивание замкнутого контура (звезды) в точке нажатия кнопки мыши
  5. Листинг 10.6. Слайд-проектор
  6. Листинг 10.7. Использование битовых образов
  7. Листинг 10.9. Кораблик
  8. Листинг 11.1. Использование компонента Animate
  9. Листинг 11.2. Программа Звуки Microsoft Windows

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.

Рис. 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.


Дата добавления: 2015-09-18 | Просмотры: 507 | Нарушение авторских прав



1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |



При использовании материала ссылка на сайт medlec.org обязательна! (0.003 сек.)