![]() |
#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. |
|