Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.09.16;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.035 c
2-1187875715
Dysan
2007-08-23 17:28
2007.09.16
Delphi 2007 и Show формы


2-1187707917
Василий
2007-08-21 18:51
2007.09.16
Как отловить JavaScript-событие закрытия окна.


8-1165527875
devastator
2006-12-08 00:44
2007.09.16
SampleGrabber не работает


6-1169490868
Khabibulin
2007-01-22 21:34
2007.09.16
Авторизация с помощью idHTTP


11-1167917623
mixail_shar
2007-01-04 16:33
2007.09.16
Вопрос по KOL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский