Управление несколькими формами в C++ Builder XE3

Я использую C++ Builder XE3 для своего тестового приложения. Группа проектов содержит DLL (с ​​формами) и EXE (содержащий основную форму и другие формы). Когда я вызываю форму DLL с помощью функции Form->Show(), форма DLL не появляется вверху и остается позади основной формы и других форм EXE. Даже метод BringToFront() не работает. Есть ли способ, которым формы DLL ведут себя аналогично формам EXE?

Заранее спасибо.


person Amit Behere    schedule 02.12.2014    source источник


Ответы (1)


Ваша DLL, скорее всего, скомпилирована как автономный исполняемый файл и, как таковая, не использует тот же экземпляр RTL, что и основной EXE, поэтому она не имеет понятия об окнах EXE TApplication и MainForm. Вы должны реализовать свои формы в пакете BPL вместо DLL или, по крайней мере, включить пакеты времени выполнения как в проектах EXE, так и в проектах DLL. Затем они будут использовать общий экземпляр RTL.

person Remy Lebeau    schedule 02.12.2014
comment
Пакет RunTime включен как в проекте DLL, так и в проекте EXE. До сих пор не работает. Преобразование проекта DLL в BPL может оказаться неосуществимым. Любой другой вариант? - person Amit Behere; 03.12.2014