Interface. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 

Uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls;

 

Type

TForm1 = class(TForm)

Timer: TTimer;

Label1: TLabel;

Button1: TButton;

procedure TimerTimer(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

 

{ объявление процедур помещено сюда,

чтобы процедуры имели прямой доступ

к форме, на которой они рисуют}

 

procedure PaintFace (x,y: integer); {рисует рожицу}

procedure EraseFace(x,y: integer); {стирает рожицу}

end;

 

Var

Form1: TForm1;

fx,fy: integer; { координаты рожицы}

n: integer; { количество щелчков кнопкой мыши}

p: integer; { количество попаданий}

Implementation

 

{ рисует рожицу}

procedure TForm1.PaintFace(x,y: integer);

Begin

Canvas.Pen.Color := clBlack; { цвет линий}

Canvas.Brush.Color := clRed; { цвет закраски}

{ рисуем рожицу}

Canvas.Ellipse(x,y,x+30,Y+30); { лицо}

Canvas.Ellipse(x+9,y+10,x+11,y+13); { левый глаз}

Canvas.Ellipse(x+19,y+10,x+21,y+13); { правый глаз}

Canvas.Arc(x+4,y+4,x+26,y+26,x,y+20,x+30,y+20); {улыбка}

end;

 

{ стирает рожицу}

procedure TForm1.EraseFace(x,y: integer);

Begin

{ зададим цвет границы и цвет закраски, совпадающий с цветом формы.}

{ По умолчанию цвет формы - clBtnFace }

Canvas.Pen.Color := clBtnFace; { цвет окружности}

Canvas.Brush.Color := clBtnFace; { цвет закраски}

Canvas.Ellipse(x,y,x+30,y+30);

end;

 

{$R *.dfm}

 

procedure TForm1.TimerTimer(Sender: TObject);

Begin

EraseFace(fx,fy);

{ новое положение рожицы}

fx:= Random(ClientWidth-30); { 30 - это диаметр рожицы}

fy:= Random(ClientHeight-30);

PaintFace(fx,fy);

end;

 

procedure TForm1.FormCreate(Sender: TObject);

Begin

{ исходное положение рожицы}

fx:=100;

fy:=100;

Randomize; { инициализация генератора случайных чисел}

end;

 

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

Begin

inc(n); { кол-во щелчков}

 

if (x > fx) and (x < fx+30) and (y > fy) and (y < fy+30)








Дата добавления: 2014-12-02; просмотров: 965;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.