Главная страница
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.021 c
4-1076643766
Aleksey
2004-02-13 06:42
2004.04.18
ctrl+c, ctrl+v


1-1080545502
npr2
2004-03-29 11:31
2004.04.18
dbgrid


4-1075488257
stainer
2004-01-30 21:44
2004.04.18
loadbitmap не пашет!


6-1069240456
MoSHgA
2003-11-19 14:14
2004.04.18
Столкнулся с интересной проблемой, при отправке письма...


3-1080119640
griff
2004-03-24 12:14
2004.04.18
16 цветов