|
![]() |
#1 |
Участник
|
в FormDigger эта задача элегантно решается вставкой всего одной строки кода в класс SysSetupFormRun. То есть стандартное приложение модифицируется минимально.
В методе task() просто не вызывается super(), если нажата сокровенная комбинация клавиш. X++: //EVO: 31.01.09 #DEV02 Find from control by name --> if (!FormDigger::overloadButton(this, _taskId)) //EVO: 31.01.09 #DEV02 Find from control by name <-- ret = super(_taskId); X++: static boolean overloadButton(FormRun _formRun, int _taskId) { #define.VK_OEM_3(0xC0)// ~ #define.VK_OEM_F12(123) #Task boolean ret = true; Object obj; int i; ; if (_taskId != #taskAlt) return false; switch (true) { case FormDigger::getAsyncKeyState(#VK_OEM_3) > 1: ret = FormDigger::newForm(_formRun); break; case FormDigger::getAsyncKeyState(#VK_OEM_F12) > 1: if (formHasMethod(_formRun, identifierStr(altF12))) { obj = _formRun; obj.altF12(); ret = true; } break; default: ret = false; } return ret; } |
|