Главная страница
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.026 c
6-1077106041
atruhinov
2004-02-18 15:07
2004.04.18
Прием/Передача данных через адаптер


6-1076475026
AloneAli
2004-02-11 07:50
2004.04.18
Не могу законнектиться к Outlook у


14-1080010041
wnew
2004-03-23 05:47
2004.04.18
Улыбаются не только мастера:)


7-1076629252
Германн
2004-02-13 02:40
2004.04.18
Подскажите, если кто может, направление поиска!


9-1066217150
SasaR
2003-10-15 15:25
2004.04.18
Движок/компненты