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

Вниз

Доступ из класса в класс...   Найти похожие ветки 

 
Bes ©   (2005-01-24 04:24) [0]

Есть двай класса, один базовый (в нем хранятся данные об объекте)

TItemClass=class
...
end;


А второй, наследуемый от списка где каждый элемент есть TItemClass (т.е. список объектов класса TItemClass)

TItemList=class(Tlist)
....
end;


так вот... описание этих двух классов происходит в разных модулях: ItemClassUnit, ItemListClassUnit

В модуле ItemListClassUnit в список uses (что в interface) добавляю ItemClassUnit. Все вроде и нормально, но мне понадобилось добавление в класс TitemClass свойства Parent,
которое бы возвращала мне тип TItemList (всмысле указатель)
на родителя.

вприницпе ничего трудного, передать коструктору указатель на класс TItemListClass и все,но чтобы хранить в структуре указатель (свойства) Parent мне надо добавлять в список Uses уже в модуле ItemClassUnit модуль ItemClassListUnit... и на данное действо компилятор ругается:
[Fatal Error] ItemClassListUnit.pas(4): Circular unit reference to "ItemClassListUnit"


я понимаю почему это происходит... но все таки вопрос, как мне сделать корректное добавление свойства Parent в Класс TItemClass..

Спасибо!


 
Digitman ©   (2005-01-24 08:31) [1]

вариантов как минимум три :

1. Перенести декларацию и реализацию обоих классов в единый юнит - проблема рассосется сама собой

2. Объявить св-во TItemClass.Parent как TObject, а после прочтения этого св-ва приводить его к типу TItemList

3. Не заниматься изобретением велосипедов, а использовать в кач-ве предков готовые классы TCollectionItem и TCollection



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

Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.028 c
1-1106673942
Pers
2005-01-25 20:25
2005.02.06
Папки и файлы


14-1106102595
Думкин
2005-01-19 05:43
2005.02.06
С Днем Рождения! 19 января


6-1101379631
Неизвестный
2004-11-25 13:47
2005.02.06
Ошибка 10061


10-1082978380
hexone
2004-04-26 15:19
2005.02.06
CoInitialize + CoUninitialize


14-1106139129
Prohodil Mimo
2005-01-19 15:52
2005.02.06
Win98 и WinXP не видят друг друга. как лечить?





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