| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			подскажите метод-антагонист addControl
			 
			
			Возникла необходимость динамически создавать и удалять Tabpages и контролы на них. С созданием проблем не возникло - все красиво и замечательно, а вот удалять.... visible(false) не интересно - будут они в памяти висеть и место занимать  
		
		
		
		
		
		
		
	![]() Сливаем воду и сушим остаток: ![]() Как удалить контрол на форме? Скрывание не предлагать.  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Посмотрите одну из последних версий Sidax 
		
		
		
		
		
		
			
		
		
		
		
	http://www.axaptapedia.com/sidax В ней реализовывалась схожая функциональность. Если не изменяет память, метода такого нет, и решается это как-то криво (если решается)  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
добавление и удаление контрола - несимметричные операции. при добавлении форма остается валидной. при удалении контролов теоретически могут пойти синтаксические ошибки из-за использованных и автодекларированных переменных и методов контролов. кроме того возможна масса побочных эффектов от кэширования.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Tabax как раз удаляет Tabы, мегаизврат - мало того, что надо переключиться на существуюищий таб перед тем как удалять  - так еще и само по себе перключение не всегда отрабатывает. 
		
		
		
		
		
		
		
	В итоге получается вот что: \Forms\Tabax\Methods\applyChanges X++: if(conLen(forRemove)) { if(tabs.tabs()) { inDeletion=true; itemHandle=tabs.controlNum(1); itemHandle.activatePage(); inDeletion=false; } } ... if(selected) { itemHandle=windows.lookup(selected); if(!this.tabIsSelected(itemHandle)) { this.setTabSelected(itemHandle); itemHandle.activatePage(); updated=true; } }  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: player (1). | |
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			element.design().removeControl(control.id())
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Британский учённый 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Помнится, у меня глючило закрытие таба - закрывался не тот на котором кликал мышкой. Вроде бы пофиксил. Версия в Dev toolset работает as expected. Единственная известная проблема это отрисовка табов, если динамически прячутся кнопки слева то нужно как то перерисовать табы, но как я не придумал.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
		
			Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. Последний раз редактировалось Link; 16.09.2015 в 14:01.  | 
| 
	
 |