Задать вопрос
@nslim13

Как правильно импортировать модули?

Доброго времени суток. Подскажите как правильно импортировать модули в случае, когда объект родитель содержит в себе поля класса ребенка, а объект ребенка содержит в себе типизированный указатель на объект родитель. Ведь в модуле родителя должен быть импортирован модуль с классом ребенка, а в модуле ребенка должен быть импортирован модуль с классом родителя. А в этом случае вознивает ошибка "Circular unit reference". Как быть в такой ситуации, кроме импорта в секции implementation?
  • Вопрос задан
  • 96 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
в модуле родителя должен быть импортирован модуль с классом ребенка
"родитель" не должен знать о "ребёнке".
родитель содержит в себе поля класса ребенка
Это ошибка. Перенесите все поля в "родителя".

родитель это приложение
619410450762f813033838.png
child'ы это компоненты приложения
619410743179b989512999.pngКак видите формы не наследуются от приложения. А находятся в одном модуле.
И приложение управляет ими, поскольку их создаёт:Application.CreateForm(TForm1, Form1);
А форма имеет доступ к приложению:Application.ExeName;

я говорю не о наследовании.
Расположите их в одном модуле.

Примечание: paren:^TParent - это масло мысленное, так как переменная-объект - это и есть ссылка. Поэтому Proc1(Obj: TMyObject) и Proc1(var Obj: TMyObject) будут выполняться по-разному.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы