Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Наследование формы в разных пакетах


Kerim ©   (2004-09-24 12:19:00) 

Проблема в следующем. Есть приложение-загрузчик модулей, выполняющий авторизацию, обновление версий и загрузку модулей. В данный момент в разных пакетах находятся формы разных классов. Появилась необходимость в наследуемых формах, но содержащихся в разных пакетах. В тестовом примере получилось следующее: В проекте загрузчика подключена базовая форма, определяющая общий внешний вид и программный интерфейс. Она включена в репозитарий. В 2-х отдельных пакетах эта форма наследуется. Если вызывать наследников модально, загружая пакет и выгружая при закрытии формы, то все ок. Но нужен немодальный вызов наследуемых форм, т.е. при загруженном одном пакете загрузить другой. То, что оба пакета содержат модуль с формой предка, я обошел директивой {$WEAKPACKAGEUNIT ON}, но теперь проблема с повторной загрузкой базового класса. Что посоветуете?


Kerim   (2004-09-24 16:34:00) [1]

kerim@aasystems.ru


Skeptik   (2004-09-24 16:16:00) [2]

я тут тебе примерчик сделал (на D5). куда выслать (zip 21K)?


Kerim   (2004-09-24 14:03:00) [3]

Уточню вопрос. Пакеты я гружу динамически.
При попытке загрузить 2-й пакет со 2-м наследником базового класса при открытом 1-м пакете с 1-м наследником программа-загрузчик выдает ошибку "A class named TMainForm already exists". TMainForm - это базовый класс.

Это происходит, и если базовый класс включен в загрузчик и наследуется через репозитарий (т.е. фактически включается в Contains в пакеты с наследниками), и если он содержится в отдельном пакете, requires для пакетов с наследниками.


Skeptik   (2004-09-24 13:34:00) [4]

вынести базовую форму в отдельный пакет
в пакетах, где описаны наследники, включить пакет с базовой формой в requires


Наверх

Титульная страница Поиск, карта сайта Написать письмо