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