![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить указатель на инкапсулирующий объект
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.
Нет