Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2010, 11:37   #1
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
Восклицание Проблема с ООП

Вот, пишу небольшую программу:
Код:
Uses Crt,Graph;

Type
    Rect = object
Private
       x1,y1,x2,y2:integer;
Public
     Constructor Init;
     Procedure Draw(a,b,c,d:integer);
     Procedure Hide;
end;

Constructor Rect.Init;
var q:boolean;
begin
     q:=True;
end;

Procedure Rect.Draw;
begin
     setcolor(15);
     Rectangle(x1,y1,x2,y2);
end;

Procedure Rect.Hide;
begin
    Setfillstyle(solidfill,0);
    Bar(0,0,640,480);
end;

var gd,gm:integer;
    ax1,ax2,ay1,ay2:integer;
begin
     gd:=detect;
     initgraph(gd,gm,'e:\bp\bgi\');
     ax1:=10;ax2:=610;
     ay1:=10;ax2:=460;
     Rect.Draw(ax1,ay1,ax2,ay2);
     readln;
     closegraph
end.
Однако выдаёт ошибку в строке:
Код:
 Rect.Draw(ax1,ay1,ax2,ay2);
И пишет: Invalid procedure or function reference. В чём дело?
_-Re@l-_ вне форума Ответить с цитированием
Старый 06.06.2010, 11:45   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

О, ошибку нашёл. Нужно было объявить переменную типа rect.
Теперб другой вопрос.
Почему когда я теперь запускаю программу экран остаётся черным?
Код:
Uses Crt,Graph;

Type
    Rect = object
Private
       x1,y1,x2,y2:integer;
Public
     Constructor Init;
     Procedure Draw(a,b,c,d:integer);
     Procedure Hide;
end;

Constructor Rect.Init;
var q:boolean;
begin
     q:=True;
end;

Procedure Rect.Draw;
begin
     setcolor(green);
     Rectangle(x1,y1,x2,y2);
end;

Procedure Rect.Hide;
begin
    Setfillstyle(solidfill,0);
    Bar(0,0,640,480);
end;

var gd,gm:integer;
    ax1,ax2,ay1,ay2:integer;
    field:rect;
begin
     gd:=detect;
     initgraph(gd,gm,'e:\bp\bgi\');
     ax1:=10;ax2:=610;
     ay1:=10;ax2:=460;
     Field.Init;
     Field.Draw(ax1,ay1,ax2,ay2);
     readln;
     closegraph
end.
_-Re@l-_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ ООП Smile.id Помощь студентам 2 21.02.2010 13:41
Паскаль ООП. Примеры программ с использованием ООП SeЯgey Помощь студентам 5 13.05.2009 21:55
ООП Римма Общие вопросы Delphi 16 15.04.2008 11:32
ООП Andrey Gort Общие вопросы Delphi 1 22.11.2006 15:01