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

Вниз

Взаимозависимые классы   Найти похожие ветки 

 
Kost   (2004-07-12 07:13) [0]

Ребята, помогите решить проблему:
Есть два класса, описанные в разных
модулях. Описание их в одном модуле
объективно невозможно.
Необходимо, чтобы они были взаимозависимы.
Как избавиться от ошибки "circular unit reference"?


 
Думкин ©   (2004-07-12 07:57) [1]

> Kost   (12.07.04 07:13)
> Описание их в одном модуле объективно невозможно.

Почему?


 
Kost ©   (2004-07-12 08:07) [2]

Потому что один из классов является формой.
И очень хочется использовать методы визуальной среды
размещения на форме компонентов.


 
evvcom ©   (2004-07-12 08:14) [3]


> Как избавиться от ошибки "circular unit reference"?

Если юзание одного из них переместить из интерфейсной части модуля в implementation uses, то ошибка исчезнет.


 
Kost ©   (2004-07-12 08:27) [4]

Перемещение невозможно. Классы-взаимозависимы!


 
Anatoly Podgoretsky ©   (2004-07-12 08:37) [5]

Kost ©   (12.07.04 08:07) [2]
И чем это противоречит объежинению в одном модуле?


 
ЮЮ ©   (2004-07-12 08:53) [6]

>Потому что один из классов является формой.

Тогда второиу не стоит знать о первом более того, что он TForm.
А если ему обязательно надо знать, что первый - TSuperPuperForm, то ему, однозначно, место в одном unit-е


 
Kost ©   (2004-07-12 08:59) [7]

У каждого из классов есть по внутренней форме - они понятно в одном модуле. Теперь каждый из классов хочет знать друг о друге.
Не буду же я в одном модуле лепить две формы и креэйтить их в ручную!


 
Anatoly Podgoretsky ©   (2004-07-12 09:05) [8]

Kost ©   (12.07.04 08:59) [7]
Нестыковочка, по твоим словам выходит, что у тебя не одна форма, а две или более в каждом модуле, тогда это означает, что они создаются вручную, на твоем жаргоне креэйтся.


 
Kost ©   (2004-07-12 09:11) [9]

Anatoly Podgoretsky ©  
Извините за настойчивость. А никак нельзя, чтобы кажадая форма как обычно была привязана к своему модулю, но как-то организовать, чтобы эта форма видела класс из другого модуля, а тот класс эту форму?


 
ЮЮ ©   (2004-07-12 09:20) [10]

См. evvcom ©   (12.07.04 08:14) [3]

В том случае, если видимости достаточно в методах, то перенести
в uses implementation-секции модуля


 
evvcom ©   (2004-07-12 09:28) [11]

А если видимость нужна также и в интерфейсной части, то в интерфейсной делать MyVar: TForm; далее [3]; а уже в реализации MyVar as TMySuperPuperForm


 
Программер ©   (2004-07-12 18:06) [12]

IMHO Ошибка проектирования надо читать рефакторинг Фаулера. Можно и попростому - юзай интерфейсы они рулез. Можешь связывать что хочешь с чем хочешь.



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

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

Наверх




Память: 0.49 MB
Время: 0.055 c
1-1089454856
Tahion2
2004-07-10 14:20
2004.07.25
Помогите перевести код из Си в Делфи.


14-1089137768
Appent
2004-07-06 22:16
2004.07.25
Настройка сети в игровом клубе


1-1089204285
Mameluke
2004-07-07 16:44
2004.07.25
Заголовок при печати TAdvStringGrid


11-1077908963
ALeX.B.
2004-02-27 22:09
2004.07.25
Помогите! Нужен FTPSERVER под KOL!!! Не INDY и ICS!


14-1089108766
cherrex
2004-07-06 14:12
2004.07.25
Запуск програм при старте Windows