Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача по ООП
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Анисия
Дали задание написать курсовой проект с применением объектно-ориентированного программирования.
Начала выполнять задание и столкнулась с проблемой возникла ошибка "Invalid procedure of functio referense".
Подскажите где я не правильно что делаю?

PROGRAM Paralel;
USES Crt, Graph;
type graph_1 = object
PROCEDURE Draw;
PROCEDURE Otr_XOZ_YOZ;
end;

VAR Gd, Gm: Integer;
par: array[1..8, 1..3] of real;
rebra: array[1..12, 1..2] of integer;
i: integer;
ch: char;
{==============================}
PROCEDURE graph_1.draw;
VAR x1,x2,y1,y2: integer;
ver1,ver2: integer;
BEGIN
For i:=1 To 12 Do Begin
ver1:=rebra[i,1];
ver2:=rebra[i,2];
x1:=round(par[ver1,1])+320;
y1:=240-round(par[ver1,2]);
x2:=round(par[ver2,1])+320;
y2:=240-round(par[ver2,2]);
line(x1,y1,x2,y2);
End;
END;
{==============================}
PROCEDURE graph_1.Otr_XOZ_YOZ;
BEGIN
For i:=1 To 8 Do Begin
par[i,2]:=-par[i,2];
par[i,1]:=-par[i,1];
End;
END;
BEGIN

par[1,1]:=0; par[1,2]:=0; par[1,3]:=0;
par[2,1]:=0; par[2,2]:=110; par[2,3]:=0;
par[3,1]:=175; par[3,2]:=110; par[3,3]:=0;
par[4,1]:=175; par[4,2]:=0; par[4,3]:=0;
par[5,1]:=0; par[5,2]:=0; par[5,3]:=150;
par[6,1]:=0; par[6,2]:=110; par[6,3]:=150;
par[7,1]:=175; par[7,2]:=110; par[7,3]:=150;
par[8,1]:=175; par[8,2]:=0; par[8,3]:=150;

rebra[1,1]:=1; rebra[1,2]:=2;
rebra[2,1]:=2; rebra[2,2]:=3;
rebra[3,1]:=3; rebra[3,2]:=4;
rebra[4,1]:=4; rebra[4,2]:=1;
rebra[5,1]:=5; rebra[5,2]:=6;
rebra[6,1]:=6; rebra[6,2]:=7;
rebra[7,1]:=7; rebra[7,2]:=8;
rebra[8,1]:=8; rebra[8,2]:=5;
rebra[9,1]:=1; rebra[9,2]:=5;
rebra[10,1]:=2; rebra[10,2]:=6;
rebra[11,1]:=3; rebra[11,2]:=7;
rebra[12,1]:=4; rebra[12,2]:=8;

Gd := Detect;
InitGraph(Gd, Gm, '');
If GraphResult <> grOk Then
Halt(1);
SetBkColor(Blue);
ClearDevice;
While ch<>#27 Do Begin
ClearDevice;
{ graph_1.draw; }
OuttextXY(10,450,'Press <1>-<6> for rotation, <7>-<9> for reflection');
OuttextXY(10,465,'Press <Esc> to Exit');
ch:=readkey;
Case ch Of
'1': graph_1.Otr_XOZ_YOZ;
End;
End;
CloseGraph;
END.

volvo
Цитата
graph_1.Otr_XOZ_YOZ;
- этого делать нельзя. graph_1 - это тип объекта. Нужно создавать экземпляр этого типа, и вызывать метод именно через экземпляр:

Var obj: graph_1;
...
obj.Otr_XOZ_YOZ;
...

Анисия
Спасибо за подсказку поправила.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.