![]() |
#1 |
Участник
|
![]()
Kernel AX 4.0.2501.116
Обнаружил неприятный баг в АХ: На форме в методе modified поля вызывается метод таблицы с диалоговым окном Box:NoYes. Если на форме изменить значение этого поля и сразу прокрутить колесо мыши, то АХ зависает наглухо, пожирая при этом ресурсы одного проца (ядра). С наскока решить или обойти проблему не удалось.Перенос вызова из метода формы в метод таблицы modifiedField ничего не дает. По сути АХ уходит в бесконечное активирование/деактивирование окон Info/formNotify. Для воспроизведения бага примера приложил проектик. |
|
![]() |
#2 |
Боец
|
Цитата:
Вообще говоря, не часто встречаются боксы на методах-событиях, так что сложно это отнести к багу, скорее всего это bad practice. Попробуйте повернуть реализацию задачи в сторону традиционных проверок validateField\Write. |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от DSPIC
![]() На самом деле, проблема в самом BOX. При таком способе вызова (из modified\validate) BOX банально не успевает отрисоваться на экране (не проверял, но может связано с его модальностью), хотя он активен и успешно опрашивает клавиатуру. Попробуйте, нажать дефолтовую клавишу бокса во время такого "повисания".
Цитата:
Цитата:
Цитата:
Отказаться от бокса увы нельзя, вопрос каким "огородом" обежать или чем заменить ? |
|
![]() |
#4 |
MCTS
|
А Вы залочьте форму на время вызова BOX.
Например так: X++: public void modified() { super(); element.lock(); Table1.box(); element.unLock(); }
__________________
С уважением, Павел Цераниди. На пути к совершенству нет конца. Каждое новое достижение является отправной точкой для следующего крупного шага. |
|
|
За это сообщение автора поблагодарили: Alexius (1). |
![]() |
#5 |
Боец
|
|
|
![]() |
#6 |
Участник
|
|
|
![]() |
#7 |
Боец
|
|
|
Теги |
ax4.0, form, баг, ядро |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|