|
34 / 31 / 1
Регистрация: 06.01.2017
Сообщений: 300
|
|
Изменение свойства Parent06.01.2017, 21:22. Показов 2006. Ответов 4
Метки нет (Все метки)
Исходная ситуация:
-UserForm --MultiPage ---Page1 ----TextBox ----CommandButton ----Frame - подробнее ниже ---Page2 ---Page3 -Page1 --Frame ---CheckBoxA ---CheckBoxB ---CheckBoxC ---CheckBoxD ---CheckBoxE =============================== Программа должна работать так: Через CommandButton загружаем (DownLoad) Excel-файл, содержащий страницу с описанием исследуемых объектов, в том числе полные имена (с путём) Excel-файлов, содержащих первичные данные по объектам. Если кому интересно, то эти первичные данные представляют результаты работы неких математических моделей. Назовём исходно загружаемый файл Config. Наша цель - преобразовать первичные данные так, чтобы на основе уже переработанных (вторичных) данных генерировать отчётные таблицы согласно Регламенту. Первичные данные это несколько листов с фиксированными именами, вторичные данные тоже несколько листов с фиксированными именами, всё это вместе - и первичные и вторичные данные, для каждого объекта расположено в соответствующем документе Собственно, список CheckBox, лежащих на Frame, это и есть список объектов. Отражаем не имя Excel-документа, содержащего первичные и вторичные данные объекта, а описание объекта, которое берётся из Config. Спрашивается, почему именно CheckBox? Это сделано потому, что какие-то объекты уже могут быть переработаны, т.е. уже содержат вторичные данные. Пользователь работает с вторичными данными, изменяет их, поэтому желательно знать, произведена ли переработка, чтобы не испортить наработанное - отредактированные вторичные данные. Поэтому Программа проверяет, содержит ли объект вторичные данные, и если содержит, то снимает флажок в соответствующем CheckBox"е. Если пользователь считает, что вторичные данные вконец испорчены, то он может выставить флажок и заставить сгенерировать вторичные данные повторно. В общем, ситуация на Page1 совсем простая. На Page2 планируется задать обработку уже вторичных данных, т.е. создание отчётов. Каждый объект обрабатывается отдельно, для каждого объекта генерируются однотипные таблицы-отчёты. Если бы всё ограничивалось бы этим, то не надо было бы вообще создавать Page2, достаточно было бы ввести CommandButton с надписью "Построить Таблицы" и дело с концом. Тонкость в том, что кроме отчетов по объектам надо создать внешне такие же отчеты для, скажем так, нулевого объекта, представляющего из себя объединение объектов низшего уровня, при этом пользователь сам решает, какие объекты объединять. Чтобы было понятно, поясню, что отчеты объекта №0 внешне точно такие же, но строятся по иному алгоритму. Что я хочу: При переходе на Page2 воссоздать весь Frame, который сейчас на Page2, чтобы надписи на CheckBox"ах были те же самые, что и на Page2, но все флажки были сброшены и пользователь выставлял их уже заново. Про запас я держу такой приём - ввести на Page1 дополнительную кнопку, которая переключала бы эту страницу в режим генерирования отчетов ну и, соответственно, назад, в режим переработки первичных данных во вторичные. Но более элегантным представляется перебросить на Page2 всего Frame со всеми Checkbox"ами. Для этого надо всего-то изменить свойство Parent у этого Frame. Сейчас у это Page1, а надо, чтобы был Page2. ======================= Вопрос к уважаемым коллегам - как изменить свойство Parent ?
0
|
|
| 06.01.2017, 21:22 | |
|
Ответы с готовыми решениями:
4
Групповое изменение свойства объектов? Определить изменение свойства Parent объекта TreeNode
|
|
3305 / 933 / 201
Регистрация: 14.01.2013
Сообщений: 4,769
|
||
| 13.01.2017, 20:55 | ||
|
0
|
||
|
34 / 31 / 1
Регистрация: 06.01.2017
Сообщений: 300
|
|
| 13.01.2017, 21:43 [ТС] | |
|
В процессе поиска наткнулся на одну книгу, в которой утверждается следующее:
1. свойство Parent изменять нельзя. 2. можно изменять свойство Container 3. в качестве контейнера могут выступать: ---- Form ---- Frame ---- Picture ---- Toolbar Иначе говоря, поставленная мной задача неразрешима. Добавлено через 16 минут Да, разумеется Page1. ======================== Да, я перешел к этому варианту. Добавил ещё одну закладку, а Frame вывел с Page1 на Form. Теперь при переходе на закладки PageN всегда виден Frame. MultiPage сделал во всю ширину Form, но невысоким. Первая закладка - загрузка головной модели, на Frame пишутся характеристики модели - "Объект №0" и полное имя файла. При переходе на вторую закладку появляется кнопка "Создать вторичные данные", а на Frame выписаны все объекты, выписаны прямо в Caption соответствующих CheckBox"ов, если вторичные данные какого-то объекта уже есть, то флажок CheckBox"а снят, а сам он выкрашен в коричневый цвет, если вторичных данных у объекта нет, то флажок выставлен, а соответствующий CheckBox выкрашен в жёлтый цвет. Третья закладка имеет кнопку "Создать таблицы", а на Frame все то же самое, но на всех объектах флажки сняты, пользователь сам выставляет нужные флажки. Четвертая закладка имеет кнопку "Задать зависимости" - имеются в виду зависимости между строками и столбцами таблиц, а на Frame опять все флажки Checkbox"ов сняты, это делается потому, что в разных объектах могут быть нужны разные зависимости. Пояснение к последнему - например, в одной таблице 62 строки. Скажем, какие-то три параметра связаны зависимостью типа Z26 = Z3*(1-Z45/100). Соответственно, есть три варианта зависимостей: 1. Z26 = Z3*(1-Z45/100) 2. Z45 = 100*(1-Z26/Z23) 3. Z3 = Z26/(1-Z45/100) В одних объектах нужны одни зависимости между строками №№3, 26, 45, в других объектах другие. Frame один, и набор CheckBox"ов один, а их состояние запоминается в соответствующих одномерных массивах, либо в одно двумерном массиве, и при переходе с одной закладки на другу состояние выставляется заново.
0
|
|
|
3305 / 933 / 201
Регистрация: 14.01.2013
Сообщений: 4,769
|
|
| 14.01.2017, 10:35 | |
|
Ну, вот! А Вы говорили невыполнимая задача
0
|
|
|
34 / 31 / 1
Регистрация: 06.01.2017
Сообщений: 300
|
|
| 14.01.2017, 12:34 [ТС] | |
|
Ну правильно, она и невыполнимая - нельзя динамически поменять Parent.
Поэтому я поменял на этапе дизайна, это делается перетаскиванием мышью. ==================================== А в общем, хорошо, что не получилось, и не зря смена Parent запрещена. Не надо в такие тонкие структуры лезть необдуманно ... Добавлено через 4 минуты
0
|
|
| 14.01.2017, 12:34 | |
|
Помогаю со студенческими работами здесь
5
Изменение свойства при изменении другого свойства Вызов $parent.$parent.Mymethod() из двух ng-repeat соотвено в ng-mouseenter
Изменение свойства по id
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|