| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Я делаю мастер, при некоторых условиях устанавливаю активной или неактивной кнопку "назад". Но иногда происходит странная вещь: кнопка становится серой, но при этом (о ужас!) она работает, тоесть на нее можно нажать и перейти на предыдущую страницу; и наоборот: кнопка вроде бы активна, но нажать на нее нельзя. При этом и метод isBackEnabled у класса и даже метод enabled у контрола backButton возвращают правильные значения. 
		
		
		
		
		
		
		
	Если кто-нибудь с таким сталкивался, объясните пожалуйста в чем дело.  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я сталкивался. 
		
		
		
		
		
		
		
	Веники не летают.Это потому,что класс "думает", что кнопочку нажать можно и нажимает её,ведь на самой форме, практически никакие методы у кнопки с проперти "Enabled" в "No" вызываться не будут.Я бы, поставил брейкпоинт в методе класса,который отвечает за смену табов и посмотрел,что его вызывает,в каком методе ошибка.И вот когда эта смена табов происходит,вернее,перед ней,наш классик смотрит,а какой проперти у внутренней переменной этого батона и ему,поверьте,начхать,что вы там видите,если это значение - тру,то всё отработает... И я так подозреваю,на всякий случай,что проперти "Bold" в "Light" никто не ставит))  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я все равно не понимаю)) 
		
		
		
		
		
		
		
	Кнопка "Назад" - это FormButtonControl backButton из класса SysWizard. С этим backButton в SysWizard делается ровно две вещи: 1. В методе prompt он инициализируется, на него вешается меню итем, по которому вызывается метод SysWizard.back() 2. В методе enableButtons у этого контрола устанавливается свойство Enabled Больше ничего с этим backButton не делается и он никуда не передается, поправьте меня если я неправ. Я же в своем классе только использую метод SysWizard.backEnabled(), т.е. backButton никак не трогаю. Поэтому мне непонятно, где может устанавливатся проперти "Bold" в "Light" или что-то подобное. И что значит класс "думает"? Я заметил, что это проявляется только на определенном табе, так что буду разбираться.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну ведь метод back() вызывается,в котором текущий номер таба уменьшается,не так ли?Если вы абсолютно уверены,что переменная кнопки backButton тут не при чём,значит где-то сбрасывается tabIdx без участия кнопки,скорее всего - это ваши модификации,без этого на предыдущую страницу визарда вы не попадёте. tabIdx сбрасывается в back() и в изменяется в setTab(),но, всё таки, посмотрите метод enableButtons и то,что присваивается в строке backButton.enabled(tabIdx!=1 && backEnabled[tabIdx]);
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я наверное плохо объяснил. Проблема в том, что я могу перейти назад именно по нажатию на задизэбленую кнопку (при этом backButton.enable() возвращает false), чего про-моему не должно быть.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Конечно, ведь по нажатию на backButton вызывается SysWizard.back().
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну хорошо,если backButton.enable() возвращает false,как вы писали,то поставьте дополнительную проверку в самом back(), если это проперти равно false, то tabIdx не уменьшать.А ещё,лучше всего - допишите свой метод,который будет вызываться в самом конце,перед передачей управления форме и корректно выставлять проперти enable и отследите,почему на форме у контрола неправильное свойство,не соответствующее действительности. 
		
		
		
		
		
		
		
	Хотя, я уверен что путаница где-то в индексах.Может быть, вы добавляли или вставляли новые табы вручную?  | 
| 
	
 |