Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 отчёт по практике ( 2 курс ).docx
Скачиваний:
5
Добавлен:
31.10.2018
Размер:
189.84 Кб
Скачать

Глава 2. Невизуальное программирование.

2.1.Кораблик

unit ship_;

interface

uses

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

StdCtrls, ExtCtrls;

type

TForm1 = class(TForm)

Timer1: TTimer;

procedure Timer1Timer(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

x,y: integer; // координаты корабля (базовой точки)

implementation

{$R *.DFM}

procedure Titanik(x,y: integer; // координаты базовой точки

color: TColor); // цвет корабля

const

dx = 5;

dy = 5;

var

buf: TColor;

begin

with form1.canvas do

begin

buf:=pen.Color; // сохраним текущий цвет

pen.Color:=color; // установим нужный цвет

// рисуем ...

// корпус

MoveTo(x,y);

LineTo(x,y-2*dy);

LineTo(x+10*dx,y-2*dy);

LineTo(x+11*dx,y-3*dy);

LineTo(x+17*dx,y-3*dy);

LineTo(x+14*dx,y);

LineTo(x,y);

// надстройка

MoveTo(x+3*dx,y-2*dy);

LineTo(x+4*dx,y-3*dy);

LineTo(x+4*dx,y-4*dy);

LineTo(x+13*dx,y-4*dy);

LineTo(x+13*dx,y-3*dy);

MoveTo(x+5*dx,y-3*dy);

LineTo(x+9*dx,y-3*dy);

// капитанский мостик

Rectangle(x+8*dx,y-4*dy,x+11*dx,y-5*dy);

// труба

Rectangle(x+7*dx,y-4*dy,x+8*dx,y-7*dy);

// иллюминаторы

Ellipse(x+11*dx,y-2*dy,x+12*dx,y-1*dy);

Ellipse(x+13*dx,y-2*dy,x+14*dx,y-1*dy);

// мачта

MoveTo(x+10*dx,y-5*dy);

LineTo(x+10*dx,y-10*dy);

// оснастка

MoveTo(x+17*dx,y-3*dy);

LineTo(x+10*dx,y-10*dy);

LineTo(x,y-2*dy);

pen.Color:=buf; // восстановим старый цвет карандаша

end;

end;

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

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Titanik(x,y,form1.color); // стереть рисунок

if x < Form1.ClientWidth

then x := x+5

else begin // новый рейс

x := 0;

y := Random(50) + 100;

end;

Titanik(x,y,clWhite); // нарисовать в новой точке

end;

procedure TForm1.FormActivate(Sender: TObject);

begin

x:=0;

y:=100;

Form1.Color:=clNavy;

Timer1.Interval := 50; // сигнал таймера каждые 50 мСек

end;

end.

2.2.Графические рисунки

unit Unit1;

interface

uses

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

Dialogs;

type

TForm1 = class(TForm)

procedure FormPaint(Sender: TObject);

private

{ Private declarations

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormPaint(Sender: TObject);

begin

//eeiey

form1.Canvas.Pen.Color:=clRed;

form1.Canvas.Pen.Width:=1;

form1.Canvas.Pen.Style:=pssolid;

form1.Canvas.MoveTo(100,100);

form1.Canvas.LineTo(250,250);

//i?yiioaieuiee

form1.Canvas.Pen.Color:=clblue;

form1.Canvas.Brush.Color:=clgreen;

form1.Canvas.Brush.Style:=bscross;

form1.Canvas.Rectangle(350,100,600,250);

//i?yiioaieuiee n caaioouie oaeaie

form1.Canvas.Brush.Style:=bshorizontal;

form1.Canvas.RoundRect(620,100,850,250,150,100);

//yeein

form1.Canvas.Pen.Color:=clyellow;

form1.Canvas.Brush.Style:=bsdiagcross;

form1.Canvas.Brush.Color:=clblack;

form1.Canvas.ellipse(100,300,250,450);

// iieoe?oa

form1.Canvas.Pen.Color:=clgray;

form1.Canvas.Brush.Style:=bsclear;

form1.Canvas.Brush.Color:=clyellow;

form1.Canvas.pie(300,300,550,450,400,400,400,350);

form1.Canvas.Brush.Color:=clblack;

form1.Canvas.Ellipse(420,320,430,330);

//a?ea

form1.Canvas.Pen.Width:=5;

form1.Canvas.Pen.Color:=clwhite;

form1.Canvas.Arc(600,300,800,500,800,400,600,400);

//caacaa

form1.Canvas.Pen.Width:=5;

form1.Canvas.Pen.Color:=clred;

form1.Canvas.Polyline([Point(300,550),Point(280,600),point(230,600),point(280,630),point(260,680),

point(300,645),point(340,680),point(320,630),point(370,600),point(320,600),point(300,550)]);

end;

end.

end;

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]