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

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

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

> Трабла с ООП, Invalid procedure or function reference
сообщение
Сообщение #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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #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 18:46
volvo   Skrip А потому, что ты пытаешься вызвать процедур…   28.11.2004 18:54
Skrip   volvo, спасибо.   28.11.2004 19:03
volvo   Не за что... А что делаешь, если не секрет? Может …   28.11.2004 19:06
Skrip   Ни чего особенного. Прямоугольник должен перемещат…   28.11.2004 19:24
Skrip   Всё, разобрался! Я там с координатами намудрил…   28.11.2004 19:33
volvo   Посмотри вот это тоже ...   28.11.2004 19:41
Skrip   volvo, еще раз спасибо ( и не надо отмахиваться :…   28.11.2004 19:42
Skrip   Я так сразу начал делать, но как обычно у ламеров…   28.11.2004 19:49
Skrip   Вот только не могу понять как работает Procedure T…   28.11.2004 20:01
volvo   Все очень просто... Переменные xst, yst, xfn, yfn…   28.11.2004 20:18
Skrip   volvo, ага, понятно, прсто я не знал доконца все с…   28.11.2004 20:30
volvo   Skrip Почти... Прочитай вот это   28.11.2004 20:36
Skrip   volvo Понятно.   28.11.2004 20:48
Skrip   Вот рабочий (в отличии от самого первого) код прог…   29.11.2004 19:54
volvo   Skrip Будь внимательнее...   29.11.2004 20:02
volvo   Я присоединил файл, посмотри его...   29.11.2004 20:13
Skrip   volvo там же выделена та часть кода на которую та…   29.11.2004 20:38
volvo   Skrip Ну так вынеси ее за пределы Move :lol: Во…   29.11.2004 20:49
Skrip   volvo, дааа... смешно... :(. Глупость сказал... сн…   29.11.2004 21:03


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

 





- Текстовая версия 16.05.2024 21:58
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name