Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Код программы. Исходный код модуля с классом:






Исходный код модуля с классом:

 

unit Unit1;

interface

uses Windows, Graphics, Classes, ExtCtrls;

type

Tpo = array of Tpoint;

Rect = TRect;

TMyClass = class

countpoint: integer;

po: tpo;

Point: TPoint;

FPColor, FBColor: TColor;

Canvas: TCanvas;

Rect: TRect;

ColPoint: byte;

Width: word;

Rad: word;

Img: TImage;

r1: rect;

Procedure SetPenColor(c: Tcolor);

Procedure SetBColor (c: Tcolor); // задать цвет

Procedure RenPenColor;

procedure VarRad;

procedure VarWidth;

Constructor Create(Img1: TImage; ColPoint: byte);

Destructor Destroy; override;

function colpo(po: tpo): integer;

procedure postroenie(Img: TImage; var po: tpo);

procedure addPoint(x, y, countPoint: integer; var po: tpo);

procedure clear;

property PCol: Tcolor Read FPColor Write SetPenColor;

property BCol: TColor Read FBColor Write SetBColor;

private

{ Private declarations }

public

{ Public declarations }

end;

var

MyClass: TMyClass;

implementation

procedure TMyClass.SetBColor(c: Tcolor);

begin

end;

Procedure TMyClass.SetPenColor(c: Tcolor);

begin

end;

procedure TMyClass.VarRad;

begin

end;

procedure TMyClass.VarWidth;

begin

end;

procedure TMyClass.addPoint(x, y, countPoint: integer; var po: tpo);

begin

setLength(po, countPoint+1);

po[countPoint].X: =x;

po[countPoint].Y: =y;

end;

destructor TMYClass.Destroy;

begin

inherited;

end;

procedure TMyClass.postroenie(Img: TImage; var po: tpo);

begin

img.Canvas.Pen.Color: =Rgb(0, 0, 255);

img.Canvas.Brush.Color: =rgb(100, 0, 100);

img.Canvas.rectangle(po[0].X, po[0].y, po[1].X, po[1].y);

end;

procedure TMyClass.RenPenColor;

begin

end;

function TMyClass.colpo(po: tpo): integer;

var i, d: integer;

begin

d: =0;

for I: = 2 to length(po) - 1 do

if ((po[i].X> po[0].X) and (po[i].X< po[1].X)) then

if ((po[i].y> po[0].y) and (po[i].y< po[1].y)) then

d: =d+1;

colpo: =d;

end;

procedure TMyClass.Clear;

begin

setLength(po, countPoint);

Img.Canvas.Brush.Color: = ClWhite;

Img.Canvas.FillRect(Img.Canvas.ClipRect)

end;

constructor TMyClass.Create(Img1: TImage; ColPoint: byte);

begin

img: =Img1;

rad: = 0;

po: =0;

end;

end.

Исходный код программы:

procedure TForm1.FormActivate(Sender: TObject);

begin

a: =0;

end;

procedure TForm1.Image1Click(Sender: TObject);

begin

Form1.StatusBar1.Panels[0].Text: ='Кол-во точек в прямоугольнике = '+floatTostr(MClass.colpo(po));

end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

Image1.Canvas.Pen.Color: =Rgb(0, 25, 0);

Image1.Canvas.Brush.Color: =Rgb(0, 26, 0);

Image1.Canvas.Ellipse(x-2, y-2, x+2, y+2);

MClass.addpoint(X, Y, A, po);

if a=1 then

begin

MClass.postroenie(Image1, po);

end;

a: =a+1;

end;

Алгоритмы

Идентичны шестой работе.

Лабораторная работа №10






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.