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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.10.2016, 12:14   #8  
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>
    // не работает прокрутка колесом мыши в gride стоя на контролах c датами и временем
    int Gridhwnd;
в этом же классе перекрываем метод selectControl и прописываем :
X++:
public boolean selectControl(FormControl _control)
{
    boolean ret;
    #WinAPI;

    ret = super(_control);

    // не работает прокрутка колесом мыши в gride стоя на контролах c датами и временем
    if (_control &&       
       _control.owner().name() != identifierstr(TemporaryFormName))
    {
        switch (_control.handle())
        {
            case classnum(FormGridControl):
            Gridhwnd = _control.hWnd();
            break;
            case classnum(FormDateControl):
            case classnum(FormTimeControl):
            case classnum(FormDateTimeControl):
            // не работает прокрутка колесом мыши в gride стоя на контролах c датами и временем
            this.installMessageProc(#WM_MOUSEWHEEL, _control.hWnd(), "catchMessage");
            break;
            default:
            break;
        }
    }
    return ret;
}
и здесь же в этом классе создаем метод :
X++:
void catchMessage(int _hwnd, int _message, int _wParam, int _lParam, int _px, int _py)
{
    #WinAPI
    ;   
    // не работает прокрутка колесом мыши в gride стоя на контролах c датами и временем
    if (_message == #WM_MOUSEWHEEL)
    {
        if (_wParam < 0)
            WinAPI::SendMessageEx(Gridhwnd, #WM_VSCROLL, 1, 1);
        else
            WinAPI::SendMessageEx(Gridhwnd, #WM_VSCROLL, 0, 1);
    }
}
Ну и не забудьте описать переменную в макросе WinApi :
X++:
#define.WM_MOUSEWHEEL    (0x020A)
#define.WM_VSCROLL                      (0x0115) // эта вроде есть
Да, но все-таки контрол с типом DateTime победить не удалось. Потому что, он вообще не реагирует ни на какие события. Вообще такой странный контрол. В принципе, для нас это не критично - в основном везде просто даты. Но если у кого есть мысли будет не плохо.

До кучи кину ссылку в ветку про SysSetupFormRun.
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
За это сообщение автора поблагодарили: Logger (3), S.Kuskov (5).
Теги
ax2009, grid, баг, дата, интерфейс, ядро

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Функция global::valueFromXMLNode() в Ax2009 работает не корректно someOne DAX: Программирование 3 09.12.2010 15:58
ax2009 cu5: не работает с зарплатой? mazzy DAX: Прочие вопросы 8 02.08.2010 11:28
Дата отгрузки заказа типа Контракт AlexeyBP DAX: Функционал 1 17.10.2006 13:53
Определить в столбец в гриде с активной ячейкой berlioz DAX: Программирование 19 28.09.2006 13:08
Ошибка: фантомное дублирующее поле типа "дата" в гриде belugin DAX: Программирование 8 14.06.2006 00:15

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

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

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