![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Наследование формы в разных пакетах
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