Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить указатель на инкапсулирующий объект


HRustBB ©   (2010-05-10 19:23:00) 

имеется вот такой набор классов

Citems = class
 id:integer;
 name:string;
public

private

end;

itemsarray = class
 items:array of Citems;
public
 
private

end;

dirCitems = class
 items:itemsarray;
public

private

end;


Возможно ли в Citems както получить указатель на объект класса dirCitems.


Юрий Зотов   (2010-05-10 22:12:00) [1]


> HRustBB   (10.05.10 19:23)  

Можно использовать коллекции, там ссылка на контейнер уже есть:

Citems = class(TCollectionItem)
id:integer;
name:string;
 ...
end;

dirCitems = class(TCollection)
...
end;

Как все это делается - см. здесь:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=215


Дмитрий Белькевич   (2010-05-10 20:02:00) [2]

>дизайн объектов

Читать: дизайн классов.


Дмитрий Белькевич   (2010-05-10 20:01:00) [3]

Далее. При создании Citems'ов проставлять поле-указатель в Citems на Self dirCitems'ов. Скорее всего добираясь до поля Citems'а через метод itemsarray, который (метод) будет менять размерность items. Немного криво объяснил из-за названий. Но, надеюсь, будет ясно.

Но имхо немного дизайн объектов кривой. Хотя, возможно, ошибаюсь - случаи всякие бывают.

По названиям:

http://www.interface.ru/home.asp?artId=16369


HRustBB   (2010-05-10 19:48:00) [4]


> и, да, названия полей, классов сделать общепринятые. Каша
> глаза режет.


виноват исправлюсь


Дмитрий Белькевич   (2010-05-10 19:45:00) [5]


> Возможно ли в Citems както получить указатель на объект
> класса dirCitems.


Добавить в Citems поле-указатель на dirCitems. dirCitems описать раньше Citems:

type dirCitems = class;

и, да, названия полей, классов сделать общепринятые. Каша глаза режет.


Плохиш   (2010-05-10 19:39:00) [6]


> Возможно ли в Citems както получить указатель на объект
> класса dirCitems.

Нет


Наверх

Титульная страница Поиск, карта сайта Написать письмо