| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > PageControl и форма из DLL |
| Автор: LordMadman 19.2.2011, 18:21 | ||||||
| Есть главная форма и dll. Форма из dll вставляется в PageControl. Проблема - после вставки формы, она не отображается. Появляется только, после перехода на другой TabSheet и возврата на TabSheet-родитель Главный модуль: процедура показа формы из dll
Код из dll
|
| Автор: Gwire 20.2.2011, 14:59 | ||
| Попробу вместо "Visible := True;" вписать "Show;" Разница не большая, но все же может BringToFront сотворит чудо (я не проверял). Не один раз создавал формы из библиотек - такой как у тебя проблемы не было.
|
| Автор: LordMadman 23.2.2011, 09:26 |
| Не помогает |
| Автор: Gwire 23.2.2011, 15:51 |
| Я когда-то создавал пост: http://forum.vingrad.ru/act-ST/f-85/t-295957/view-findpost/p-2126138.html Там все заработало. Пробуй через Handle окна. |
| Автор: gesper 15.9.2014, 20:49 | ||||
| Новую тему создавать не стану, задам вопрос тут: Q:Делается проект в Lazarus, по этому спрашиваю. В Delphi если создать dll и загнать в нее форму, то при вызове из основного приложения команды создания формы и попытки засунуть ее в компоненты pageControl все проходит нормально, или есть какие то шаманства с присвоением владельцев, родителей и т.п. ? У меня при попытке вызова
вылетает сообщение
Не пойму как лечить. Проблема исключительно при вызове из dll. |
| Автор: drkot 16.9.2014, 14:43 |
есть шаманства. форма из длл имеет свой TApplication. На мой взгляд это не самое правильное решение с концепций языка. Либо использовать пакеты, либо просто показывать форму как отдельное окно. Добавлено через 4 минуты и 27 секунд для того чтобы ошибка не возникала, нужно зарегистрировать класс TFInspector |
| Автор: gesper 16.9.2014, 15:04 |
| Не прокатывает, либо я как то не так регистрирую. Есть разница как регистрировать? Может пример. Пробовал вызывать функцию программы, которая делает регистрацию класса из библиотеки. |
| Автор: Alexeis 16.9.2014, 17:59 |
| Дело скорее всего даже не в TApplication, а в RTTI . Возможно оно заработает если и программа и длл будут использовать общий набор пакетов. Имея общие пакеты получается общая реализация классов и общий RTTI . Если делать без пакетов, то при наложения нужно работать через WinAPI. Т.е. приваивать ParentWindow и все взаимодйствия осуществлять через хэндл окна. Но и это не избавит от возможных глюков. VCL обертка вокруг окон работает не здорово в длл. Там бывают чудеса при зажатии кнопки ALT, и некорректная обработка WM_SHOWWINDOW. |