Вниз
Скачать: CL | DM;

Модальная форма в ActiveX под IE   Найти похожие ветки 

 
Роман   (2004-12-16 15:10) [0]

Собственно сабж, как показать, вернее показываться она показывается, но при этом можно выполнять действия на страничке IE, а этого не хочется, заранее спасибо!


 
Роман   (2004-12-17 13:22) [1]

Разобрался, решил написать, вдруг кому-нибудь понадобится.
помогли следующие изменения TControl:
добавление в public свойства OwnerWindowHandle : HWND в него я после NewForm прописываю хендл окна IE в теле функции
function TControl.CreateWindow: Boolean;
строчку
Params.WndParent := GetParentWnd( True );
заменил на
if OwnerWindowHandle<>0
then Params.WndParent := OwnerWindowHandle
else Params.WndParent := GetParentWnd( True );
(Все таки зря убрали отдельную функцию CreateParams не пришлось бы так извращаться)
далее вызов ShowModal обрамляю в

 ActiveWindow := GetActiveWindow;   //ActiveWindow : HWND;
 EnableWindow(F.OwnerWindowHandle, false);
 F.ShowModal
 EnableWindow(F.OwnerWindowHandle, true);
 SetActiveWindow(ActiveWindow);

правда для этого пришлось выключить {$DEFINE ASM_VERSION} т.к. не силен я в ассемблере:( кстати может напишет кто ассемблерный код этого изменения?

У меня просьба к разработчикам, как-нибудь учесть в будущем релизе проблемку с которой я столкнулся и либо вынести CreateParams либо как то еще предусмотреть вариант когда родителем может буть не KOLовский объект. Странно что написание ActiveX на KOL так мало освещено, ведь именно здесь очень важен размер модуля...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.023 c
4-1116860405
XCept.ion
2005-05-23 19:00
2005.07.18
Наиболее часто исп. проги


4-1116783398
dEd
2005-05-22 21:36
2005.07.18
Форма ловит нажатия клавиш после MessageBox


4-1116498842
Molchanov
2005-05-19 14:34
2005.07.18
MessageBox в произвольном месте экрана


6-1111061566
FUNKy
2005-03-17 15:12
2005.07.18
ICS и virtual mapping


1-1119787721
Руслана
2005-06-26 16:08
2005.07.18
Почему происходит ошибка?




   Наверх