Текущий архив: 2004.04.18;
Скачать: CL | DM;
ВнизПроблема с Z-Order Найти похожие ветки
← →
art-east (2004-04-02 20:24) [0]Есть форма в DLL, показывается немодально. Если, при активной форме из DLL, навести курсор на контрол формы вызывающего приложения, у которого(контрола) есть хинт, при всплывании хинта, форма вызывающего приложения вылезает поверх формы из DLL, хотя последняя остается активной и имеет фокус ввода.
Связка WM_WINDOWPOSCHANGING + SWP_NOZORDER не помогает.
Не знает ли кто-нибудь решения данной проблемы? Или может быть сможете подсказать направление куда копать?
← →
Torn (2004-04-03 00:46) [1]А что хотелось то бы? Если хочется, чтобы форма из ДЛЛ оставалась поверх поставь ей свойство FormStyle fsStayOnTop
← →
Юрий Зотов © (2004-04-03 08:34) [2]В справке рекомендуется:
DLL.Application.Handle := EXE.Application.Handle
Более радикален такой способ:
DLL.Application := EXE.Application
DLL.Screen := EXE.Screen
... // а также можно Session и др. глобальные объекты.
Но самый радикальный способ такой - НЕ НАДО ЗАПИХИВАТЬ VCL В DLL! Потому что назначение DLL - быть библиотекой процедур и функций, а не объектов VCL.
Нет, работать, конечно, будет - но, во-первых, возникнет дублирование кода VCL, а во-вторых придется обходить проблемы, подобные той, с которой Вы столкнулись. А чтобы со всем этим не мучиться, Borland придумала BPL - вот это и есть НОРМАЛЬНОЕ решение.
← →
art-east (2004-04-03 11:34) [3]to Torn:
в том то и дело что форма должна быть НЕ StayOnTop
to Юрий Зотов:
переприсваивать application, screen и т.д не могу, т.к. вызывающее приложение может быть не моё и вообще не VCL-приложение.
А про предназначение DLL, так оно ещё и быть COM-сервером, посему и вызывающим приложением может быть кто угодно и поэтому же BPL не подходит.
Неужто все формы на API писать и нет другого решения?
← →
art-east (2004-04-03 13:17) [4]Благодаря привычке Юрия Зотова лечить не болезнь, а пациэнта (за что ему респект), возник параллельный вопрос о корректности использования UI (в частности форм) в COM-серверах с избежанием вышеописанных проблем при in-proc сервере. Первая мысль - out-of-proc, но уж больно велики затраты на маршалинг. Или же лучше разнести функционал и интерфейс на два сервера, первый in, второй out-of-proc?
Если есть время и желание высказаться, с удовольствием бы послушал Ваши соображения по этому поводу.
Страницы: 1 вся ветка
Текущий архив: 2004.04.18;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.039 c