|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.09.2015, 00:00 | #1 |
Форумчанин
Регистрация: 19.04.2009
Сообщений: 368
|
Управление объектами
Всем привет. Ситуация такая:
Есть некий класс, который по сути дела представляет из себя массив объектов класса TPanel.Эти панельки выполняют функции элементов меню. И вот какая мысля у меня появилась, при выборе одного из пунктов меню ( т.е. при клике на объект класса TPanel) , этот пункт меню (элемент) подсвечивался и подсветка сохранялась бы до тех пор, пока не будет выбран другой элемент меню. Реализацию подсветки элементов уже сделал, осталось дело за малым ))) Нужно связать эти панельки, чтобы они были не как раздельные элементы, а вместе составляли бы что то по типу меню из RadioButton ... Пробовал реализовать на основе Фокуса, но запоролась эта идея за счет того, что на форме кроме элементов меню есть и другие элементы ... Код:
|
11.09.2015, 06:57 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Сделай массив TPanel *but=new TPanel[6];
И в цикле поназначай при создании им один и тот же обработчик - метод этого класса.
I'm learning to live...
|
11.09.2015, 07:42 | #3 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Цитата:
Код:
Вот, собственно и всё. К стати, панели в этом случае могут иметь различные номера, даже не по порядку.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
|
11.09.2015, 08:53 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Причем тут switch? Автору надо подсветить текущую панель (Sender) и убрать подсветку у остальных (те, что != Sender. Ну или те, где Tag != Sender->Tag). Поэтому удобно иметь массив со всеми панелями.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
11.09.2015, 11:05 | #5 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Цитата:
Вот Рабочий код и даже с выпадающими менюшками: Код:
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 11.09.2015 в 11:30. |
|
11.09.2015, 11:18 | #6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
11.09.2015, 11:22 | #7 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Ну массив все равно удобнее/логичнее, мало ли что еще понадобится сделать с ними, везде придется копипастить, и забывать об этом при добавлении новой.
+ анимация может быть более сложной, чем просто изменение цвета. Тогда надо будет определить что было выбрано, а не просто всем убирать. И название метода видимо должно было быть что-то типа PanelMenuClick, вы ж не предлагаете создать 6 обработчиков с этим кодом?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
11.09.2015, 11:35 | #8 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Не вижу ничего смешного. Тупо всё обнуляем, а потом в выбранном объекте включаем то, что нужно. И не нужны никакие циклы
И не нужно создавать 6 обработчиков. Я писал выше, создаём обработчик для одной панели, а остальные подключаем к нему в инспекторе объектов на закладке Events.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 11.09.2015 в 11:38. |
11.09.2015, 11:39 | #9 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Тогда переименовать его надо, это не только PanelFile же.
Ну и даже это проще с массивом, не надо 6 раз (и при добавлении новых) тыкать во всякие закладки Events и выбирать из списка.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
11.09.2015, 12:09 | #10 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Управление графическими объектами | Fluffy123 | Помощь студентам | 1 | 16.11.2010 19:31 |
Управление объектами через сеть с помошью сокетов: | ritm | Работа с сетью в Delphi | 2 | 24.02.2010 09:35 |
Управление динамическими объектами по Handle | SibBear | Общие вопросы Delphi | 3 | 17.03.2009 19:12 |
задачка с объектами | LyaLyaLya | Помощь студентам | 9 | 09.01.2009 02:02 |
Управление Программно созданными объектами | dars73 | Помощь студентам | 14 | 19.11.2007 01:42 |