Показать сообщение отдельно
Старый 14.01.2011, 13:12   #10  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Заморачиваться особенно не пришлось
в классе SysSetupFormRun описываем переменную
X++:
// This is a framework class. Customizing this class may cause problems with future upgrades to the software.
public class SysSetupFormRun extends FormRun
{
    SysWorkflowFormControls     workflowControls;
    // <GEEU>
    // Event listeners list
    List listeners_W;
    // </GEEU>
    // kos глюк выхода из ячейки грида после двойного клика
    int Gridhwnd;
    // kos глюк выхода из ячейки грида после двойного клика
затем в этом классе создаем метод

X++:
void catchMessage(int _hwnd, int _message, int _wParam, int _lParam, int _px, int _py)
{
    /*
    #define.WM_LBUTTONDOWN   (0x0201)
    #define.WM_LBUTTONUP     (0x0202)
    #define.WM_LBUTTONDBLCLK (0x0203)
    */
    #WinAPI
    ;

    WinAPI::SendMessageEx(Gridhwnd, #WM_LBUTTONDOWN, 1, 1);
    WinAPI::SendMessageEx(Gridhwnd, #WM_LBUTTONUP, 1, 1);

}
и теперь в этом классе перекрываем метод selectControl и прописываем

X++:
public boolean selectControl(FormControl _control)
{
    boolean ret;
    /*
    #define.WM_LBUTTONDOWN   (0x0201)
    #define.WM_LBUTTONUP     (0x0202)
    #define.WM_LBUTTONDBLCLK (0x0203)
    */
    #WinAPI;

    ret = super(_control);
    // kos глюк выхода из ячейки грида после двойного клика
    if (_control)
    {
        switch (_control.handle())
        {
            case classnum(FormGridControl):
            Gridhwnd = _control.hWnd();
            break;
            case classnum(FormStringControl):
            case classnum(FormRealControl):
            case classnum(FormIntControl):
            case classnum(FormInt64Control):
            case classnum(FormDateControl):
            case classnum(FormTimeControl):
            case classnum(FormDateTimeControl):
            case classnum(FormComboBoxControl):
            this.installMessageProc(#WM_LBUTTONDBLCLK, _control.hWnd(), "catchMessage");
            break;
            default:
            break;
        }
    }
    // kos глюк выхода из ячейки грида после двойного клика

    return ret;
}
Заработало корректно во всех местах.
За это сообщение автора поблагодарили: SIrina (1), S.Kuskov (2).