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

Вниз

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

 
HRustBB   (2010-05-10 19:23) [0]

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

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 19:39) [1]


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

Нет


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


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


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

type dirCitems = class;

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


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


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


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


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

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

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

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

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


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

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

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


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


> 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



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

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

Наверх




Память: 0.45 MB
Время: 0.059 c
6-1223380302
gaux
2008-10-07 15:51
2010.08.27
Indy 10.1.5 + SSL. Получить код ошибки OpenSSL в OnVerifyPeer


2-1273094862
concord
2010-05-06 01:27
2010.08.27
Настройка выпадающего списка


2-1275731880
REX
2010-06-05 13:58
2010.08.27
Дата/Время


15-1269360123
TUser
2010-03-23 19:02
2010.08.27
Генетика и геномика человека


2-1271353531
Мурад Севзиханов
2010-04-15 21:45
2010.08.27
найдите пожалуйста ошибку





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский