|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.01.2017, 12:19 | #1 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
[Хочу вникнуть суть компонентов] Вид CheckBox'а
Здравствуйте.
Давно интересуют разные компонентские вопросы, но не настолько, чтобы забить на всё остальное в попытках в них разобраться. Хотя иногда предпринимались попытки вникнуть в тему компонентов. И вот необходимость в ответах стала подходить ближе. Вопросы были разные, но часть из них можно свести к одному: как реализовать список-лист с отметками? Наиболее близкая реализация того, что я имею ввиду - плей-лист с чекбоксом, отмечающим проигрывать песню или нет. Допустим, строки плейлиста можно реализовать через TListBox с прорисовкой нужного текста на канве. Но как туда встроить CheckBox в каждую строку? Но это позже. Сначала хотелось бы понять другое. Обычный ЧекБокс не всегда нормально смотрится. А как поменять его вид? Чтоб он был не кватратиком с галочкой а, например, звёздочкой, которая либо закрашена (если true), либо только её контур (если false). При попытках разобраться с тем как делать компоненты натыкался только на статьи как добавить новое не визуальное свойство уже существующему компоненту. Как-то не ответило это ни на один из моих вопросов... P.S. Прошу прощения... Привык к тому, что другие разделы по Delphi мне практически никогда не требуются и ошибочно разместил тему здесь, а не в компонентах... |
19.01.2017, 12:33 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Ну в компонентах есть всякие OnDraw, OnDrawItem. Можно там рисовать то, что надо.
Еще бывает надо наследовать класс и переопределять/добавлять что-то. В целом конечно это не самый простой и безболезненный процесс. В более современных фреймворках это как правило сделано более приятно.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
19.01.2017, 13:03 | #3 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Ну где OnDraw и OnDrawItem - там более-менее всё понятно, но его нет ни у ЧекБокса, ни у кнопки. Наследовать класс, наверное, ближе к теме, но что там и как переопределить, чтоб изменить вид ЧекБокса? Как он вообще визуально отображается изначально? Просто есть определённые в винде изображения, которые отрисовываются в зависимости от состояния, и надо переопределить путь к этим изображениям? Или тут что-то другое?
|
19.01.2017, 13:12 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
В прорисовке можно и свой "чекбокс" с оригинальным видом отрисовать. И менять картинку в зависимости от состояния. А в обработчике клика мышью анализировать координаты и если они в области этого "чекбокса", то менять его состояние
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
19.01.2017, 13:31 | #5 | |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Цитата:
Ну и всё равно остаётся интерес как происходит отрисовка встроенного CheckBox (откуда берётся картинка и как её поменять = как изменить вид встроенных компонентов)? |
|
19.01.2017, 13:37 | #6 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
19.01.2017, 13:41 | #7 |
Новичок
Джуниор
Регистрация: 19.01.2017
Сообщений: 2
|
TCheckListBox (вкладка Additional) не подойдёт?
|
19.01.2017, 13:44 | #8 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
|
19.01.2017, 13:50 | #9 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
|
19.01.2017, 14:26 | #10 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Его же не генокод делфийский прорисовывает, а виндовс в соответствии со стилем заданным при создании окна. И навряд-ли для чекбокса есть некие другие стили, самому рисовать нужно ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хочу выучиться на программиста с нуля. Хочу понять всю суть ООП, посоветуйте материалы с доступным изложением. | jake_progib | Помощь студентам | 11 | 23.01.2016 01:59 |
Как выполнить функцию в случае нажатия на CheckBox, если данный CheckBox был добавлен через код? | PAMAC | Microsoft Office Excel | 7 | 21.02.2013 15:33 |
Парсим текст, не могу вникнуть | antoxamad | Помощь студентам | 7 | 23.02.2012 10:02 |
c++,класс вектор вникнуть в задание | ahab | Помощь студентам | 5 | 26.12.2009 13:52 |
Помогите вникнуть в условие задачи. Что нужно сделать | garald50 | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 04.06.2008 19:42 |