Показать сообщение отдельно
Старый 19.02.2018, 16:01   #99
Sergenald
Новичок
 
Регистрация: 21.09.2017
Сообщений: 19
Сказал(а) спасибо: 15
Поблагодарили 4 раз(а) в 2 сообщениях
Вес репутации: 0
Sergenald пока не определено
По умолчанию

Вопрос по созданию формы.
На форме есть статическая группа "Group1", которая есть всегда и ни как не меняется.
Так же есть кнопка, при нажатии на которую в Group1 добавляется группа с какими-то вложенными свойствами. При каждом нажатии на кнопку со смещением добавляется новая группа в Group1 так, что новая группа создаётся под старой. Для этого использую свойство Count. (к примеру windows1.Group1.Count) И получаю количество уже отрисованных групп, умножая на высоту группы, получаю координату отрисовки новой группы.
НО, появилась надобность их удалять. И тут я попал в тупик. Я получаю список созданных групп свойством Items. Но как из него удалить элемент мне не ясно. Есть ли такой функционал в скриптах базиса?

Вот костыли что пришли в голову:
Мысль 1: Сохранять все группы в массив. При нажатии на удаление вызывать свойство Group1.Clear, за тем отрисовать обратно всё сохранённое. Тогда как добавить обратно в окно сохранённые группы? Или же не обратно, а добавлять новые группы по длине массива, а потом перезаписать их в массив... НО, возможно, это будет достаточно долго выполняться на большом количестве упаковок.

Мысль 2: Не делать привязку к Items, создавать новые упаковки основываясь на своём счётчике в переменной, удаляемые группы просто скрывать... Но если очень постараться, то можно создать ненароком пару десятков групп и потом работать в подлагивающем окне.

Мысль 3: Создавать группы не в том же окне, а в маленьких новых окнах, так же смещая их по координатам, тогда на каждом окошке будет по своей кнопке удалить, тогда закрытие окна будет значить удаление упаковки, которое можно отслеживать массивом задавая окнам какие-то ID... Но не слишком ли много окон?
Sergenald вне форума   Ответить с цитированием Вверх