Форум: "Основная";
Текущий архив: 2004.01.23;
Скачать: [xml.tar.bz2];
Внизперекрестная инициализация объектов Найти похожие ветки
← →
msgipss (2004-01-12 10:07) [0]сорьки за ламерский вопрос..
хочу использовать иерархическую структуру классов,собственно вопрос:
при описании свойств класса А1 используется класс А2,
а одним из свойств класса А2, является сласс А1,
описание каждого из классов находятся в разных модулях,
как разрулить перекрестное декларирование модулей.
← →
alex_*** (2004-01-12 10:21) [1]напрямую нельзя использовать в интерфейсной части перекрестные ссылки.
1. Можно изменить иерархию классов: ввести базовый класс для A1, A2 с виртуальными методами и давать ссылку на него в A1,A2. Поскольку в implementation можно будет включить паралельный класс, то реальный объект можно создать нужного типа.
2. Напрямую не давать паралельных ссылок, а дать ссылку на TObject и пользовать приведение типов каждый раз.
Я ипользовал оба способа. Может кто-нибудь еще что-ть подскажет.
← →
msgipss (2004-01-12 10:30) [2]Спасибо, наверное первый способ не подойдет, уж очень они разные, а второй пробую..
← →
Broot (2004-01-12 10:33) [3]А в чем проблема то? Если описания классов находятся в разных модулях, бери да пользуй. Если в одном, то соществует упреждающее объявление класса: TMyClass = class;
← →
TUser (2004-01-12 10:38) [4]
> напрямую нельзя использовать в интерфейсной части перекрестные
> ссылки.
А в implementation можно.
implementation
uses ... // здесь можно писать все, что угодно
← →
alex_*** (2004-01-12 10:40) [5]если в одном модуле то проще [3]
← →
msgipss (2004-01-12 13:12) [6]Всем спасибо, тема закрыта
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.01.23;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c