Пример очень сложной установки привязок ПРОГРАММНО элементам формы, для их скрытия/ отображения. Скрытие элементов на форме. Программная свертка элементов на форме

Програмная установка привязок элементам формы для скрытия, свертка элементов формы, скрытие элементов формы програмно.
Показиваю на примере в обработке как работать с привязками и сверткой элементов формы. Программная установка видимости.

Нужно было программно установить видимость таблице посредине формы, долго мучался, пока разобрался с этим механизмом.

Решение, понятно, для обычных форм) в управляемых за нас делают разрабы)

Нашел типовое решение через изменение высоты элементов. Но, как я и думал, можно проще, только привязками и сверткой!!!
 

// необходимо развернуть панель

// текущая высота основной панели
НачальнаяВысотаОсновнойПанели = ВерхняяПанель.Высота;

// на основную панель отдаем половину высоты
ВерхняяПанель.Высота = Окр(НачальнаяВысотаОсновнойПанели * 0.6 ,0);

// развернем разделитель, устатановим его внизу основной панели, настроим привязки
Разделитель.Свертка = РежимСверткиЭлементаУправления.Нет;
Разделитель.Верх = ВерхняяПанель.Верх + ВерхняяПанель.Высота;
Разделитель.УстановитьПривязку(ГраницаЭлементаУправления.Низ, Панель, ГраницаЭлементаУправления.Верх, Панель, ГраницаЭлементаУправления.Низ);
Разделитель.УстановитьПривязку(ГраницаЭлементаУправления.Верх, Разделитель, ГраницаЭлементаУправления.Низ);

// развернем нижнюю панель,установим ее к разделителю, настроим привязки
НижняяПанель.Свертка = РежимСверткиЭлементаУправления.Нет;
НижняяПанель.Верх = Разделитель.Верх + 6;
НижняяПанель.Высота = НачальнаяВысотаОсновнойПанели - ВерхняяПанель.Высота - 6;
НижняяПанель.УстановитьПривязку(ГраницаЭлементаУправления.Верх, Разделитель, ГраницаЭлементаУправления.Верх);
НижняяПанель.УстановитьПривязку(ГраницаЭлементаУправления.Низ, Панель, ГраницаЭлементаУправления.Низ);

И нашел рабочий алгоритм действий. Обработка с открытым кодом, можете посмотреть реализацию и использовать для своих творческих нужд.
Так как сам на данную публикацию потратил день для создания примера, не считаю ее дорогой! Ваше время ценнее. Надеюсь, кому-то пригодится для примера работы с программным изменением видимости на форме!

Тестировал на 8.2.19.

19 Comments

  1. VmvLer

    Программная свертка элементов на форме

    такой заголовок был бы информативным и логичным, а эта портянка с деталями бла бла бла к чему?

    да и первой строкой неплохо бы указать сразу платформу и формы

    8.2 — ОФ, а то мне лень телепатировать, что функционал безнадежно устарел.

    К тому же цена в 5 стартмани как бы намекает, что автор толкает этот антиквариат в расчете на Буратино.

    у меня пост-праздничный синдром и все кажется кривым, корявым и недосказанным, простите.

    Reply
  2. oleg-x

    (0) молодец, но 5 стартмани…

    Вообщем здесь многие выкладывают свои детища куда более сложные и всего за 1 монетку (кто то и бесплатно выкладывал бы, но платформа не позволяет), хотя если написать автору и очень хорошо попросить, можно получить бесплатно. Это я к чему, можно и 10 монет запросить, а можно поделиться знаниями и получить отзывы 🙂

    Reply
  3. _1c_coder
    такой заголовок был бы информативным и логичным, а эта портянка с деталями бла бла бла к чему?

    да и первой строкой неплохо бы указать сразу платформу и формы

    8.2 — ОФ, а то мне лень телепатировать, что функционал безнадежно устарел.

    К тому же цена в 5 стартмани как бы намекает, что автор толкает этот антиквариат в расчете на Буратино.

    у меня пост-праздничный синдром и все кажется кривым, корявым и недосказанным, простите.

    ну я обработку выложил для тех кто ищет.

    опытным ясно, что в управляемых, привязки не надо настраивать) это делает платформа.

    а цена 5 может и действительно великовата, но полдня для того чтобы осилить, и пол для написания.

    автор пока бедный новичок здесь, того и такую цену поставил.

    Reply
  4. _1c_coder

    (2)

    молодец

    спасибо, буду стараться и дальше. цену изменю. может и так благодарны пользователи найдутся как вы и говорите

    Reply
  5. t278

    Я только сейчас это узнал !!!

    В некоторых случаях, пригодился бы.

    Reply
  6. rpgshnik

    Хорошо что уже «обычные формы» уходят в прошлое, но статья 👍

    Reply
  7. catena

    (3)

    а цена 5 может и действительно великовата, но полдня для того чтобы осилить, и пол для написания.

    Смешно)) Интересно, сколько дней было потрачено на стратер, который предлагается в соседней теме))

    Reply
  8. _1c_coder

    (6) так вы правы. но многие конфигурации на обычных формах. и это как 7ка уже не поддерживается, но пользователей еще хватает!!

    Спасибо!

    Reply
  9. _1c_coder

    (5) так, век живи век учись

    Reply
  10. _1c_coder

    (7) сядь сделай, размести и напиши сколько ты потратишь)

    Reply
  11. catena

    (10)Эээ, я немного о другом. О сравнении трудозатрат и стоимости.

    Reply
  12. 1segen1

    Что это за типовая конфигурация, в которой подобные вещи делают через изменение размеров элементов? В типовых видел только с использование сверки и установки привязок.

    Reply
  13. starik-2005

    (2)

    молодец, но 5 стартмани…

    Спрос рождает предложение. За 5 см обработку скачают 1 раз, за 2 см — пять раз, за 1 см — сто раз. Автор этого не понимает (к счастью для нас).

    ЗЫ: вот у меня есть обработка из одной строки кода. И ее уже 21 раз скачали за 1 см. Предположу, что за 2 см ее бы не скачали ни разу )))

    ЗЫЗЫ: а в комментах есть ответ, почему ее качают.

    Reply
  14. _1c_coder

    (12) типовые для Украины УПП УТП

    Reply
  15. _1c_coder

    (13) ок попробуем) акция 1 см)

    Reply
  16. Xoza1n

    Сейчас с похожим вожусь, но там сразу несколько элементов нужно сворачивать, а они привязанны друг к другу

    Левый эл1

    Левый эл2

    Эл свертки 1

    Эл свертки 2

    Эл свертки 3

    Эл свертки 4

    Эл свертки 5

    Тч1

    И сворачивает любые элементы хорошо, но вот когда разворачивает, тч1 которая привязана к нижней границе Эл свертки 5, через раз остаётся на месте, а элементы все на неё лезут ), не сталкивались с таким?

    P.S. Даже если закрыть и открыть форму ей всё так же плохо) только перезапуск помогает)

    Reply
  17. _1c_coder

    (16) а мой пример не включает вашу ситуацию?

    там главное понять логику работы и вам откроются тайны)

    алгоритм прост, сначала перепривязываем те елементы которые будут принимать участие в свертке, потом сворачиваем.

    когда включаем видимовсть вновь привязываем разворачиваем привязываем

    Reply
  18. Xoza1n

    (17) с 1-2 эл проблем и у меня не было, а когда их сразу дофига, там какие то проблемы были. в итоге забил на всё и после сверток перемещал 1 эл программно, а остальное к нему привязывал )

    Reply
  19. _1c_coder

    (18) думаю проблема в порядке была

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *