IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Трабла с ООП, Invalid procedure or function reference
Skrip
сообщение 28.11.2004 14:46
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 33
Пол: Мужской

Репутация: -  0  +


uses Graph, CRT;
{----------------------------SetGraph_BEGIN---------------------------------}
type
SetGraph=object
Procedure Hide(x1,y1,x2,y2: integer);
Procedure Show(x1,y1,x2,y2,rec_color: integer);
end;


Procedure SetGraph.Hide;
begin
Setcolor(0);
Rectangle(x1,y1,x2,y2);
end;

Procedure SetGraph.Show;
begin
SetColor(rec_color);
Rectangle(x1,y2,x2,y2);
end;


{----------------------------SetGraph_END-----------------------------------}

var d,r,px1,px2,py1,py2,pcolor: integer;

Procedure Move;
begin
SetGraph.hide(px1,py1,px2,py2); { <--- }
px1:=x1+a;
pY1:=y1+b;
px2:=x2+c;
py2:=y2+d;
SetGraph.show(px1,py1,px2,py2,pcolor);;
end;


begin
d:=detect;
initgraph(d,r,'');
px1:=(GetMaxX div 5)*3;
py1:=(GetMaxY div 5)*3;
px2:=px1*4;
py2:=px1*4;
pcolor:=3

SetGraph.show(px1,py1,px2,py2,pcolor);
repeat begin
if keypressed then begin
case readkey of
77: move(1,0,1,0);
75: move(-1,0,-1,0);
80: move(0,1,0,1);
72: move(0,-1,0,-1);
end
end
end until readkey=#27;
closegraph;
end.
Почему в выделенной строчке неверная ссылка на процедуру? как сделать верно?

Сообщение отредактировано: volvo - 27.11.2009 15:54
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Skrip
сообщение 29.11.2004 15:54
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 33
Пол: Мужской

Репутация: -  0  +


Вот рабочий (в отличии от самого первого) код программки.
Есть ли еще способ передвигать квадратик так, чтобы рисунок за квадратиком не стирался.
З.Ы. Имеется ввиди такой способ, который не вычерчивает рисунок за квадратиком каждый раз при перемещении квадратика. :D

uses Graph,crt;
{----------------------------SetGraph_BEGIN---------------------------------}
type
SetGraph=object
Procedure Hide(x1,y1,x2,y2: integer);
Procedure Show(x1,y1,x2,y2,rec_color: integer);
end;


Procedure SetGraph.Hide;
begin
Setcolor(0);
Rectangle(x1,y1,x2,y2);
end;

Procedure SetGraph.Show;
begin
SetColor(rec_color);
Rectangle(x1,y1,x2,y2);
end;


{----------------------------SetGraph_END-----------------------------------}

var d,r,px1,px2,py1,py2,pcolor: integer;
rect: setgraph;
Procedure Move(a,b,c,d: integer);
begin
rect.hide(px1,py1,px2,py2);
inc(px1,a);
inc(pY1,B);
inc(px2,c);
inc(py2,d);
rect.show(px1,py1,px2,py2,pcolor);
SetColor(white); { <--- }
Rectangle(0,0,GetMaxX,GetMaxY); { <--- }
Line(0,0,GetMaxX,GetMaxY); { <--- }
line(getmaxX,0,0,getmaxY); { <--- }
end;


begin
d:=detect;
initgraph(d,r,'');
px1:=(GetMaxX div 2)-30;
py1:=(GetMaxY div 2)-30;
px2:=(GetMaxX div 2)+30;
py2:=(GetMaxY div 2)+30;
pcolor:=3;


move(0,0,0,0);
repeat begin
if keypressed then begin
case readkey of
#77: move(1,0,1,0);
#75: move(-1,0,-1,0);
#80: move(0,1,0,1);
#72: move(0,-1,0,-1);
end
end
end until readkey=#27;
closegraph;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Skrip   Трабла с ООП   28.11.2004 14:46
volvo   Skrip А потому, что ты пытаешься вызвать процедур...   28.11.2004 14:54
Skrip   volvo, спасибо.   28.11.2004 15:03
volvo   Не за что... А что делаешь, если не секрет? Может ...   28.11.2004 15:06
Skrip   Ни чего особенного. Прямоугольник должен перемещат...   28.11.2004 15:24
Skrip   Всё, разобрался! Я там с координатами намудрил...   28.11.2004 15:33
volvo   Посмотри вот это тоже ...   28.11.2004 15:41
Skrip   volvo, еще раз спасибо ( и не надо отмахиваться :...   28.11.2004 15:42
Skrip   Я так сразу начал делать, но как обычно у ламеров...   28.11.2004 15:49
Skrip   Вот только не могу понять как работает Procedure T...   28.11.2004 16:01
volvo   Все очень просто... Переменные xst, yst, xfn, yfn...   28.11.2004 16:18
Skrip   volvo, ага, понятно, прсто я не знал доконца все с...   28.11.2004 16:30
volvo   Skrip Почти... Прочитай вот это   28.11.2004 16:36
Skrip   volvo Понятно.   28.11.2004 16:48
Skrip   Вот рабочий (в отличии от самого первого) код прог...   29.11.2004 15:54
volvo   Skrip Будь внимательнее...   29.11.2004 16:02
volvo   Я присоединил файл, посмотри его...   29.11.2004 16:13
Skrip   volvo там же выделена та часть кода на которую та...   29.11.2004 16:38
volvo   Skrip Ну так вынеси ее за пределы Move :lol: Во...   29.11.2004 16:49
Skrip   volvo, дааа... смешно... :(. Глупость сказал... сн...   29.11.2004 17:03


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 6:40
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"