Форум: "KOL";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
ВнизМодальная форма в 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 вся ветка
Форум: "KOL";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.04 c