|
0 / 0 / 0
Регистрация: 26.07.2017
Сообщений: 59
|
|
Управление сложной логикой управления элементами интерфейса12.08.2018, 23:51. Показов 1310. Ответов 6
Метки нет (Все метки)
Здравствуйте, Коллеги.
Допустим у нас есть 100+ элементов на диалоге, едитбоксы, чекбоксы, радиобатоны, кнопи... Но их доступность сильно зависит от состояния друг друга. Сейчас пытаюсь управлять их доступностью путем вложенных if/else. Но в результате код очень сильно усложняется и читать, и править его довольно сложно ( Вопрос в следующем, есть ли какие либо методики, подходы, паттерны проектирования для организации сложной логики управления элементами на форме, что бы код был более элегантный и удобно читаемым?
0
|
|
| 12.08.2018, 23:51 | |
|
Ответы с готовыми решениями:
6
Создание "места" для управления логикой БД
|
|
Just Do It!
|
||
| 13.08.2018, 04:25 | ||
|
- Метод самоотрисовки. - Метод обработки клика/драга/дропа. 2. Также есть бул-массив состояний. 3. Юзверь меняет состояние ячеек массива_состояний через методы клика. 4. По особому событию проходим циклом по методам отрисовки, работа которых зависит от массива состояний. 5. Все. Да и кстати, не стесняйтесь использовать ООП, то бишь С++, а не голую сишку, он как раз и был изобретен для того чтобы можно было без паники, не спеша управлять сложностью. http://sklv.org/gui.patterns/
1
|
||
|
0 / 0 / 0
Регистрация: 26.07.2017
Сообщений: 59
|
||||||
| 13.08.2018, 11:20 [ТС] | ||||||
|
Спасибо, но это не совсем то что я спрашивал.
Приложение написано на MFC SDI. т.к. элементов много, писать обработчик в каждом вообще не удобно, по этому решено было сделать отдельной функцией, которая вызывается при любом изменении состояния элементов, и она в комплексе анализирует ситуацию и меняет состояние элементов, вот маленький пример:
Вот и хотелось узнать, может уже придуман более удобный велосипед? ))
0
|
||||||
|
Just Do It!
|
||||||||||||
| 13.08.2018, 16:04 | ||||||||||||
Сообщение было отмечено Azmoday как решение
Решениемогу посоветовать прием, который я сам использовал, чтобы сделать текст более наглядным: убрать неинформативный захламляющий текст в эпицентре логических развязок: без лишнего фанатизма)
ну, еще можно, в данном примере писать ваще без if'ов. для текущего примера:
1
|
||||||||||||
|
0 / 0 / 0
Регистрация: 26.07.2017
Сообщений: 59
|
|
| 14.08.2018, 09:21 [ТС] | |
|
Спасибо, интересные подходы.
7,6 дублируют 10,11 - это не так, там разные элементы )
0
|
|
|
Just Do It!
|
|
| 15.08.2018, 13:54 | |
|
7,8 и 10,11 мда,какие шутки))
0
|
|
| 15.08.2018, 13:54 | |
|
Помогаю со студенческими работами здесь
7
Разработка сложной базы данных и интерфейса к ней на ASP.NET MVC 5 Конструирование файлов с элементами сложной структуры Приложение со стандартными элементами интерфейса Построение экранного интерфейса. Управление процессами Ознакомление с основными элементами интерфейса C++ Builder Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
|
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|