24.02.2008, 14:13 | #1 |
Участник
|
подскажите метод-антагонист addControl
Возникла необходимость динамически создавать и удалять Tabpages и контролы на них. С созданием проблем не возникло - все красиво и замечательно, а вот удалять.... visible(false) не интересно - будут они в памяти висеть и место занимать
Сливаем воду и сушим остаток: Как удалить контрол на форме? Скрывание не предлагать. |
|
24.02.2008, 17:17 | #2 |
Участник
|
Посмотрите одну из последних версий Sidax
http://www.axaptapedia.com/sidax В ней реализовывалась схожая функциональность. Если не изменяет память, метода такого нет, и решается это как-то криво (если решается) |
|
24.02.2008, 21:49 | #3 |
Участник
|
Цитата:
добавление и удаление контрола - несимметричные операции. при добавлении форма остается валидной. при удалении контролов теоретически могут пойти синтаксические ошибки из-за использованных и автодекларированных переменных и методов контролов. кроме того возможна масса побочных эффектов от кэширования. |
|
24.02.2008, 22:55 | #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). |
16.09.2015, 13:16 | #5 |
Участник
|
element.design().removeControl(control.id())
|
|
16.09.2015, 13:23 | #6 |
Британский учённый
|
Помнится, у меня глючило закрытие таба - закрывался не тот на котором кликал мышкой. Вроде бы пофиксил. Версия в Dev toolset работает as expected. Единственная известная проблема это отрисовка табов, если динамически прячутся кнопки слева то нужно как то перерисовать табы, но как я не придумал.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. Последний раз редактировалось Link; 16.09.2015 в 14:01. |
|