![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| JSinx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 12.12.2006 Репутация: нет Всего: 1 |
Есть 2 библиотеки (допустим first.bpl и second.bpl). Вторая библиотека использует первую (всякие общие файлы и т.п.)
В first.bpl у меня сделан компонент (TTestFrame) на основе TFrame (сделал все правильно, через File -> New -> Frame). Если в этой же библиотеке создавать фрейм на основе TTestFrame, все нормально работает и ничто не ругается. Чтобы создать во второй библиотеке фрейм на основе TTestFrame, приходиться включать файл с компонентом в библиотеку и создавать фрейм. После этого он перестает компилироваться, т.к. говорит, что этот файл уже есть в другой библиотеке. Если убрать файл из библиотеки, то при переходе на дизайн фрейма, ругается :( "Error creating form: Ancestor for TTestFrame not found". Как быть то? |
|||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
надо в исходник второй библиотеки в секцию requires добавить название первой библиотеки.
а файл содержащий TTestFrame, НЕ ВКЛЮЧАТЬ во вторую библиотеку, а прописать в секции uses нужного юнита. |
|||
|
||||
| JSinx |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 12.12.2006 Репутация: нет Всего: 1 |
Естественно в секцию uses прописано, тогда бы была другая ошибка. |
||||
|
|||||
| Bose |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
вот пример того как должно быть: Первая библиотека.dpk:
Вторая библиотека.dpk:
а CommonUnit1 и CommonUnit2 должны быть прописаны только в секции uses нужных юнитов. Но я не проверял как в этом случае работает визуальное наследование(создание фрейма на основе другого). |
||||
|
|||||
| JSinx |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 12.12.2006 Репутация: нет Всего: 1 |
У меня так:
файл первого проекта (где находиться базовая форма) general.bpl
Файл FrameBase.pas
Вторая библиотека:
Файл frameSecond.pas
Добавлено через 14 минут и 55 секунд Если запихнуть первую и вторую библиотеку в одну группу проектов, то работает :(. Мне же нужно, чтобы работало без добавления исходников первой библиотеки. |
||||||||
|
|||||||||
| Bose |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
Не работает это -
????? Второй фрейм, использует визуальное наследование? А что вообще значит работает, не работает? Попробуй убрать исходники(.pas), но оставить dfm-файл. |
||||
|
|||||
| JSinx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 12.12.2006 Репутация: нет Всего: 1 |
Выводит ошибку на экран и дизайнить форму нельзя.
Да, второй фрейм использует визуальное наследование. Его можно создать двумя путями:
Это сообщение отредактировал(а) JSinx - 30.9.2008, 18:54 |
|||
|
||||
| Bose |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
Мне кажется, что проблемы из-за визуального наследования. Лучше всего было бы совсем отказаться от него, оставив упоминания о TTestFrame только в .pas файле. Попробуй ещё такой вариант:
|
||||
|
|||||
| JSinx |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 12.12.2006 Репутация: нет Всего: 1 |
Решил изменить структуру, чето гемороиться не охота.
Лучше сделаю класс, который будет содержать нужные мне методы + простой фрейм, чем так мучаться. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |