| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Компонент на основе TFrame и bpl |
| Автор: JSinx 29.9.2008, 22:14 |
| Есть 2 библиотеки (допустим first.bpl и second.bpl). Вторая библиотека использует первую (всякие общие файлы и т.п.) В first.bpl у меня сделан компонент (TTestFrame) на основе TFrame (сделал все правильно, через File -> New -> Frame). Если в этой же библиотеке создавать фрейм на основе TTestFrame, все нормально работает и ничто не ругается. Чтобы создать во второй библиотеке фрейм на основе TTestFrame, приходиться включать файл с компонентом в библиотеку и создавать фрейм. После этого он перестает компилироваться, т.к. говорит, что этот файл уже есть в другой библиотеке. Если убрать файл из библиотеки, то при переходе на дизайн фрейма, ругается :( "Error creating form: Ancestor for TTestFrame not found". Как быть то? |
| Автор: Bose 30.9.2008, 14:46 |
| надо в исходник второй библиотеки в секцию requires добавить название первой библиотеки. а файл содержащий TTestFrame, НЕ ВКЛЮЧАТЬ во вторую библиотеку, а прописать в секции uses нужного юнита. |
| Автор: JSinx 30.9.2008, 15:49 | ||||
Естественно в секцию uses прописано, тогда бы была другая ошибка. |
| Автор: JSinx 30.9.2008, 17:32 | ||||||||
| У меня так: файл первого проекта (где находиться базовая форма) general.bpl
Файл FrameBase.pas
Вторая библиотека:
Файл frameSecond.pas
Добавлено через 14 минут и 55 секунд Если запихнуть первую и вторую библиотеку в одну группу проектов, то работает :(. Мне же нужно, чтобы работало без добавления исходников первой библиотеки. |
| Автор: Bose 30.9.2008, 18:16 | ||||
Не работает это -
????? Второй фрейм, использует визуальное наследование? А что вообще значит работает, не работает? Попробуй убрать исходники(.pas), но оставить dfm-файл. |
| Автор: JSinx 30.9.2008, 18:52 | ||||||
Выводит ошибку на экран и дизайнить форму нельзя.
Да, второй фрейм использует визуальное наследование. Его можно создать двумя путями:
|
| Автор: Bose 30.9.2008, 19:42 | ||||
Мне кажется, что проблемы из-за визуального наследования. Лучше всего было бы совсем отказаться от него, оставив упоминания о TTestFrame только в .pas файле. Попробуй ещё такой вариант:
|
| Автор: JSinx 30.9.2008, 21:38 |
| Решил изменить структуру, чето гемороиться не охота. Лучше сделаю класс, который будет содержать нужные мне методы + простой фрейм, чем так мучаться. |