Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.16;
Скачать: CL | DM;

Вниз

проблема со свойствами объекта   Найти похожие ветки 

 
Fleg ©   (2007-08-23 17:19) [0]

Приветствую мастера и подмастерия!

Проблема в следующем:
Создал класс, его объект, свойство для обращения к массиву:

mesto = class(tobject)
  CL:gluquadricobj;
  tabl: array[0..8,0..8] of glfloat;
  coord: array[0..1] of glfloat;
  constructor   create;
  function getcoord(indexx:integer):glfloat;
  procedure setcoord(indexx:integer;uni:glfloat);
  property oxk[indexx:integer]:glfloat read getcoord write setcoord;

после описал, что должна делать setcoord  и getcoord , все работало как надо.

Далее нужно было создать еще одно свойство для обращения к другому массиву, описал его сразу после первого свойства:

function gettabl(indx,indy:integer):glfloat;
  procedure settabl(indx:integer;indy:integer;unin:glfloat);
  property tablxy[indx:integer;indy:integer]:glfloat read gettabl write settabl;

по образу и подобию первого свойства описал действия settabl и gettabl:

function mesto.gettabl(indx, indy: integer): glfloat;
begin
result:=myMesto.tablxy[indx,indy];
end;

procedure mesto.settabl(indx, indy: integer; unin: glfloat);
begin
tabl[indx,indy]:=unin;
end;

При записи с использованием settabl комп не ругается, но при попытке прочитать gettabl все виснет, если запустить exeшник то не виснет, но пишет ошибку - stack overlow!
Жду дельных советов.


 
sdts   (2007-08-23 17:31) [1]


> result:=myMesto.tablxy[indx,indy];


 
fleg ©   (2007-08-23 17:33) [2]


> sdts   (23.08.07 17:31) [1]
>
> > result:=myMesto.tablxy[indx,indy];

из-за этого???
Если можно, подробнее?


 
wp2 ©   (2007-08-23 17:44) [3]

Что еще за MyMesto?


 
sdts   (2007-08-23 17:44) [4]


> Если можно, подробнее?

ну так тут myMesto вообще ненадо, пишите лучьше self и тогда понятнее будет

а tablxy я совсем не нашел у вас


 
sdts   (2007-08-23 17:48) [5]


> а tablxy я совсем не нашел у вас

в смысле среди полей


 
fleg ©   (2007-08-23 17:56) [6]

tablxy - свойство, tabl -поле..вроде..
tabl - вроде поле - оно в самом начале.
self так - result:=self.tablxy[indx,indy]; - не помогает.
и еще до этого(в первом свойстве) у меня было - result:=coord[indexx]; - и работало!
???


 
sdts   (2007-08-23 18:01) [7]

result := self.tabl[indx,indy];
тут self. - необязательно,  но наглядно!


 
fleg ©   (2007-08-23 18:04) [8]

ну так почему же ошибка возникает когда я пытаюсь второй массив считать -tabl: array[0..8,0..8] of glfloat; ??
может я их описываю неправильно(см выше)..???


 
sdts   (2007-08-23 18:23) [9]


> fleg ©   (23.08.07 18:04) [8]

по второму кругу пойдем или думать начнем?
ошибка была т.к. был рекурсивный вызов метода gettabl


 
fleg ©   (2007-08-23 18:37) [10]


> sdts

Спасибо - дельный совет  -
> думать начнем?


Спасибо! Усе работает!
PS опыта блин у меня маловато...


 
sdts   (2007-08-23 18:43) [11]


> PS опыта блин у меня маловато...

это со временем проходит, а вот думать - это надо учится ;)
вам надо подучить ооп, см соседнюю ветку про Использование объектов, там хорошие учебники, вот их бы и почитать


 
fleg ©   (2007-08-23 19:12) [12]

Спасибо:)), ссылку нашел, изучу.
И последнее - можно ведь не использовать свойства, работать с полями напрямую(если можно так сказать) - насколько это лучше/хуже?


 
sdts   (2007-08-23 19:28) [13]

ну вот это и есть основы ООП, вот тут в кратце
http://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%BA%D0%B0%D0%BF%D1%81%D1%83%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29

но вообще, все-же книги в этом плане лучше


 
sdts   (2007-08-23 19:35) [14]

нашел :)
недавно тут этот момент обсуждали
http://delphimaster.net/view/15-1186046769/



Страницы: 1 вся ветка

Текущий архив: 2007.09.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
3-1177857180
Galiaf
2007-04-29 18:33
2007.09.16
Вместо строки ссылка в мастере подстановок


15-1187385078
Real
2007-08-18 01:11
2007.09.16
MIDI кабель


15-1187151786
@!!ex
2007-08-15 08:23
2007.09.16
Хорошие кодеки.


15-1187089130
просто так
2007-08-14 14:58
2007.09.16
как запретить несанкционированное скачивание?


15-1185282701
StriderMan
2007-07-24 17:11
2007.09.16
BlackBox и Оберон