AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.01.2008, 15:10   #1  
DPO is offline
DPO
Участник
 
19 / 10 (1) +
Регистрация: 24.09.2007
? Проблема с кнопкой в мастере
Я делаю мастер, при некоторых условиях устанавливаю активной или неактивной кнопку "назад". Но иногда происходит странная вещь: кнопка становится серой, но при этом (о ужас!) она работает, тоесть на нее можно нажать и перейти на предыдущую страницу; и наоборот: кнопка вроде бы активна, но нажать на нее нельзя. При этом и метод isBackEnabled у класса и даже метод enabled у контрола backButton возвращают правильные значения.
Если кто-нибудь с таким сталкивался, объясните пожалуйста в чем дело.
Старый 30.01.2008, 20:55   #2  
Eugene Murka is offline
Eugene Murka
Участник
Аватар для Eugene Murka
 
36 / 17 (1) ++
Регистрация: 09.01.2008
Адрес: Киев
Я сталкивался.
Веники не летают.Это потому,что класс "думает", что кнопочку нажать можно и нажимает её,ведь на самой форме, практически никакие методы у кнопки с проперти "Enabled" в "No" вызываться не будут.Я бы, поставил брейкпоинт в методе класса,который отвечает за смену табов и посмотрел,что его вызывает,в каком методе ошибка.И вот когда эта смена табов происходит,вернее,перед ней,наш классик смотрит,а какой проперти у внутренней переменной этого батона и ему,поверьте,начхать,что вы там видите,если это значение - тру,то всё отработает...
И я так подозреваю,на всякий случай,что проперти "Bold" в "Light" никто не ставит))
Старый 31.01.2008, 09:05   #3  
DPO is offline
DPO
Участник
 
19 / 10 (1) +
Регистрация: 24.09.2007
Я все равно не понимаю))
Кнопка "Назад" - это FormButtonControl backButton из класса SysWizard. С этим backButton в SysWizard делается ровно две вещи:
1. В методе prompt он инициализируется, на него вешается меню итем, по которому вызывается метод SysWizard.back()
2. В методе enableButtons у этого контрола устанавливается свойство Enabled
Больше ничего с этим backButton не делается и он никуда не передается, поправьте меня если я неправ.
Я же в своем классе только использую метод SysWizard.backEnabled(), т.е. backButton никак не трогаю.
Поэтому мне непонятно, где может устанавливатся проперти "Bold" в "Light" или что-то подобное. И что значит класс "думает"?
Я заметил, что это проявляется только на определенном табе, так что буду разбираться.
Старый 31.01.2008, 11:38   #4  
Eugene Murka is offline
Eugene Murka
Участник
Аватар для Eugene Murka
 
36 / 17 (1) ++
Регистрация: 09.01.2008
Адрес: Киев
Ну ведь метод back() вызывается,в котором текущий номер таба уменьшается,не так ли?Если вы абсолютно уверены,что переменная кнопки backButton тут не при чём,значит где-то сбрасывается tabIdx без участия кнопки,скорее всего - это ваши модификации,без этого на предыдущую страницу визарда вы не попадёте. tabIdx сбрасывается в back() и в изменяется в setTab(),но, всё таки, посмотрите метод enableButtons и то,что присваивается в строке backButton.enabled(tabIdx!=1 && backEnabled[tabIdx]);
Старый 31.01.2008, 13:51   #5  
DPO is offline
DPO
Участник
 
19 / 10 (1) +
Регистрация: 24.09.2007
Я наверное плохо объяснил. Проблема в том, что я могу перейти назад именно по нажатию на задизэбленую кнопку (при этом backButton.enable() возвращает false), чего про-моему не должно быть.
Старый 31.01.2008, 13:53   #6  
Eugene Murka is offline
Eugene Murka
Участник
Аватар для Eugene Murka
 
36 / 17 (1) ++
Регистрация: 09.01.2008
Адрес: Киев
Цитата:
Сообщение от DPO Посмотреть сообщение
Я наверное плохо объяснил. Проблема в том, что я могу перейти назад именно по нажатию на задизэбленую кнопку (при этом backButton.enable() возвращает false), чего про-моему не должно быть.
Хорошо,а tabIdx меняется?
Старый 31.01.2008, 14:14   #7  
DPO is offline
DPO
Участник
 
19 / 10 (1) +
Регистрация: 24.09.2007
Конечно, ведь по нажатию на backButton вызывается SysWizard.back().
Старый 31.01.2008, 14:46   #8  
Eugene Murka is offline
Eugene Murka
Участник
Аватар для Eugene Murka
 
36 / 17 (1) ++
Регистрация: 09.01.2008
Адрес: Киев
Цитата:
Сообщение от DPO Посмотреть сообщение
Конечно, ведь по нажатию на backButton вызывается SysWizard.back().
Ну хорошо,если backButton.enable() возвращает false,как вы писали,то поставьте дополнительную проверку в самом back(), если это проперти равно false, то tabIdx не уменьшать.А ещё,лучше всего - допишите свой метод,который будет вызываться в самом конце,перед передачей управления форме и корректно выставлять проперти enable и отследите,почему на форме у контрола неправильное свойство,не соответствующее действительности.

Хотя, я уверен что путаница где-то в индексах.Может быть, вы добавляли или вставляли новые табы вручную?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема с единицей измерения longson DAX: Программирование 4 16.07.2007 14:35
Проблема с созданием объекта Lelya DAX: Администрирование 33 27.06.2005 16:38
Проблема: русские шрифты в отчетах, формируемых на сервере. Anais DAX: Администрирование 3 17.11.2003 13:20
Проблема с правами доступа sa2002as DAX: Администрирование 1 30.06.2003 13:28
Проблема с Х++, глазами Ява-девелопера blacky DAX: Программирование 3 26.11.2002 11:50

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:13.