03.10.2008, 18:12 | #1 |
Участник
|
Переход по полям грида с помощью стрелочек на клавиатуре
Dynamics AX 4.0
Доброго всем время суток. Подскажите, пожалуйста, по следующему вопросу. Мне надо реализовать переход по полям грида с помощью стрелочек на клавиатуре. Я это сделал перекрыв метод task на форме: X++: public int task(int _taskId) { #define.TaskLeft(1283) // Налево #define.TaskRight(1284) // Направо int ret; int num; switch ( _taskId) { case #TaskRight: this.design().control(element.selectedControl().id()+1).setFocus(); break; case #TaskLeft: this.design().control(element.selectedControl().id()-1).setFocus(); break; default: ret = super(_taskId); break; } return ret; } Вопросы: - Как понять в каком месте (позиция) конкретного контрола находиться курсор? - М.б. эту задачу можно решить другим способом? |
|
03.10.2008, 18:51 | #2 |
Аманд
|
Цитата:
М.б. эту задачу можно решить другим способом?
перемещение по полям вперёд/назад, по закладкам, по форме и проч. Также обратите внимание что на кнопочках буковки стоят - это тоже горячие клавиши. |
|
03.10.2008, 19:09 | #3 |
Участник
|
|
|
03.10.2008, 20:35 | #4 |
Участник
|
Цитата:
передвигаемся с помощью стрелок в конец/начало строки
Может сделать:
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
03.10.2008, 22:39 | #5 |
Участник
|
Цитата:
А свой обработчик на кнопку Reset они ещё не попросили повесить? |
|
|
За это сообщение автора поблагодарили: longson (1). |
06.10.2008, 11:39 | #6 |
Участник
|
Выходит, что понять в каком месте (позиция) конкретного контрола находиться курсор нет возможности?!
Пожалуй, "Shift или Alt или Ctrl + стрелки" будет компромисом... На одной или всех формах - хороший вопрос. Есть ли возможность реализовать такой обработчик для всех форм (не переопределением метода task на каждой форме)? |
|
06.10.2008, 11:58 | #7 |
Участник
|
Цитата:
Прекройте метод task() на классе SysSetupFormRun.
__________________
Функциональное тестирование сайтов |
|
06.10.2008, 12:14 | #8 |
Участник
|
У некоторых форм в стандартной функциональности данный метод уже перекрыт. И далеко не факт, что super() всегда вызывается.
|
|
06.10.2008, 13:02 | #9 |
Участник
|
Цитата:
Все таки подавляющее большинство форм будет работать нужным образом. А форм с кривым кодом(без вызова super()) будет не очень много. В них можно будет допилить ручками.
__________________
Функциональное тестирование сайтов |
|
06.10.2008, 13:13 | #10 |
Участник
|
|
|
06.10.2008, 13:29 | #11 |
Участник
|
|
|
06.10.2008, 14:01 | #12 |
Участник
|
Поддерживаю вопрос
Сделал поиск форм с перекрытым методом. Открыл наугад несколько форм. У всех есть вызов super().
__________________
Функциональное тестирование сайтов Последний раз редактировалось Red Stranger; 06.10.2008 в 14:03. |
|
06.10.2008, 15:08 | #13 |
Участник
|
Да, это будет вариантом!
Спасибо, за ответы всем (буду воспитывать(не баловать) пользователя). И всё-таки, вопрос, который меня интересует уже как теоретический: Есть возмлжность понять в каком месте (позиция) конкретного контрола находится курсор?! |
|
06.10.2008, 16:31 | #14 |
Участник
|
Цитата:
X++: int res; int startSel, endSel; ; res = WinAPI::sendMessageEx(StringEdit.hWnd(), 0x00B0, 0, 0); startSel = res & 0xffff;//LOW WORD endSel = res >> 16;//HIGH WORD Цитата:
The EM_GETSEL message retrieves the starting and ending character positions of the current selection in an edit control. You can send this message to either an edit control or a rich edit control.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
06.10.2008, 18:53 | #15 |
Участник
|
Попробую на досуге.
Спасибо! :-) |
|
06.10.2008, 19:21 | #16 |
Участник
|
Цитата:
\Forms\LedgerRRGETemplates_W\Methods\task или \Forms\JmgRegistration\Methods\task или \Forms\PBATree\Methods\task не до каждого super() управление может дойти.. |
|
07.10.2008, 12:39 | #17 |
Участник
|
Цитата:
__________________
Функциональное тестирование сайтов |
|