Under a hood Delphi's VCL method ShowModal
enumerates all visible thread windows and disables all of them (before showing your modal window pop-up). IE6 ActiveX container does nothing to prevent such manipulation with own windows. ActiveX controls very unsecure in IE6, they do what they want. So we get only some disabled IE windows and one active pop-up window on screen. But if the window is disabled, it can't be selected in the task list. Also your pop-up window has bsToolwindow
property (or WS_EX_TOOLWINDOW originally in Windows API) which says that it should not be visible in task list (Alt-Tab switching, Explorer taskbar). As a result, we have no windows at all from IE that can be activated through Alt-Tab.
This only applies to windows that do not have a parent. For Delphi's ActiveX controls, forms don't have parent by default (except main Form). When you assign parent to your Form, and don't use ShowModal
method (in answer Show
method used) you are preventing this situation. In that case, IE windows don't change their original properties.