AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 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).
Теги
syssetupformrun

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
EP AX2009: сохранить параметры грида (фильтр, позиционирование) caper DAX: Программирование 9 01.04.2010 09:16
Суммовые после списания со склада Ann DAX: Функционал 1 26.10.2004 14:33
Обработка событий ячейки грида simply DAX: Программирование 2 24.05.2004 15:36
Буферные ячейки на складе - зачем? renat DAX: Функционал 16 01.04.2004 20:22
Сколько раз вызывается DataMethod поля грида при инициализации этого грида? storer DAX: Программирование 2 18.11.2003 14:03

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 11:33.