|
![]() |
#1 |
Moderator
|
А можно спрятать эту "низкоуровневую высшую математику" в статический метод класса a-ля Global и тогда всё не так уж "серьезно".
Главное - ёмко обозвать (типа 31-символьным идентификатором ![]() Спасибо, AndyD - я уже добавил в свой персональный "глобальный" класс следующий метод: X++: // позволяет не выпадать списку при добавление символа * в контрол с лукапом // пример использования: // public void lookup() // { // if (KKu::isNotAsteriskWhenTypingOnLookup()) // { // // Вызываем super() или вставляем свой код для формирования лукапа // } // } // Thanks to AndyD --> http: //www.axforum.info/forums/member.php?u=4803 // His X++ code from --> http: //www.axforum.info/forums/showthread.php?p=177771#post177771 static boolean isNotAsteriskWhenTypingOnLookup() { DLL _winApiDLL = new DLL('USER32'); DLLFunction _getKeyState = new DLLFunction(_winApiDLL, 'GetKeyState'); #define.VK_MULTIPLY (0x6A) #define.VK_SHIFT (0x10) ; _getKeyState.returns(ExtTypes::Word); _getKeyState.arg(ExtTypes::DWord); if ((_getKeyState.call(#VK_MULTIPLY) & 0x8000 == 0) && !((_getKeyState.call(char2num("8", 1)) & 0x8000 != 0) && (_getKeyState.call(#VK_SHIFT) & 0x8000 != 0))) { return true; // т.е. очередной символ - НЕ * } else { return false; // очередной символ - "звездочка" } } |
|