Показать сообщение отдельно
Старый 02.07.2003, 17:06   #2  
Yuri Safronov is offline
Yuri Safronov
Участник
 
140 / 55 (2) ++++
Регистрация: 21.08.2002
Адрес: Москва
Это где-то на форуме уже было.
Только если я не ошибаюсь, при использовании этого способа, есть какой-то побочный эффект, он проявляется когда вызываешь из модальной формы другое модальное.

PHP код:
public void run()
{
    
super();

    
this.setFormModal(this.hWnd(), true);
}

//---------------------------------------------------------------------

public void close()
{
    
super();

    
this.setFormModal(this.hWnd(), false);
}

//---------------------------------------------------------------------

void setFormModal(int _thisHWNDboolean _bModal)
{
    
DLL             _winApiDLL;
    
DLLFunction     _EnabledWindow;
    
DLLFunction     _getTop;
    
DLLFunction     _getNext;
    
DLLFunction     _getParent;

    
void local_enableWHND(int _lHWND)
    {
        
int lnextWnd;

        
lnextWnd _getTop.call(_getParent.call(_lHWND));

        while (
lnextWnd)
        {
           if (
lnextWnd != _lHWND)
                
_enabledWindow.call(lnextWnd, (!_bModal));

            
lnextWnd =  _getNext.call(lnextWnd2);
        }
    }
    ;
    
_winApiDLL              = new DLL('user32');
    
_getNext                = new DLLFunction(_winApiDLL"GetWindow");
    
_EnabledWindow          = new DLLFunction(_winApiDLL"EnableWindow");
    
_getTop                 = new DLLFunction(_winApiDLL"GetTopWindow");
    
_getParent              = new DLLFunction(_winApiDLL"GetParent");

    
_getParent.returns(ExtTypes:: DWORD);
    
_getParent.arg(ExtTypes:: DWORD);

    
_EnabledWindow.returns(ExtTypes:: DWORD);
    
_EnabledWindow.arg(ExtTypes:: DWORDExtTypes:: DWORD);

    
_getTop.returns(ExtTypes:: DWORD);
    
_getTop.arg(ExtTypes:: DWORD);

    
_getNext.returns(ExtTypes:: DWORD);
    
_getNext.arg(ExtTypes:: DWORDExtTypes:: DWORD);

    
local_enableWHND(_thisHWND);

    
local_enableWHND(_getParent.call(_thisHWND));

__________________
yurisafronov@mail.ru
skype: y.safronov