Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.03 c
1-1080470536
TGrey
2004-03-28 14:42
2004.04.18
К какому языку принадлежит текст


14-1080303245
cypher
2004-03-26 15:14
2004.04.18
Филисофия программирования


14-1080281180
Dmitriy O.
2004-03-26 09:06
2004.04.18
Мож кто делал ?


14-1080406441
microsoft
2004-03-27 19:54
2004.04.18
Программный комплекс управления локальной сетью


3-1079683716
unicode
2004-03-19 11:08
2004.04.18
Ibase и SQL server