![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| safright |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.7.2008 Где: Тольятти Репутация: нет Всего: нет |
Доброго времени суток!
Суть задачи - "сделать клон с другим лицом", т.е. полностью скопировать компонент, изменив его внешние данные. В данном случае - TCheckBox. Необходимые изменения: перерисовать сам бокс (убрать 3Д границы и изменить область на RoundRect) и сделать так, чтобы лейбл с ним рядом рисовался на прозрачном фоне. А, еще изменить цвет внутри коробочки (желательно - и grayed) на произвольный. В принципе, я представляю, как изменить внешний вид (region'ы рулять! Дабы не переписывать предка TCustomCheckBox, хорошо бы все реализовать на API... собсна, затем и пост |
|||
|
||||
| Burka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.5.2007 Репутация: нет Всего: 2 |
Какое там вин апи
http://www.hostmake.ru/articles/delphi/345/ Это сообщение отредактировал(а) Burka - 14.8.2008, 21:13 -------------------- Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей. |
|||
|
||||
| safright |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.7.2008 Где: Тольятти Репутация: нет Всего: нет |
Я этих книжек/статей/постов на форумах за последние пару недель перечитал стока, что уже могу сам написать книжку. Другое дело, что где-то в 90% из них говориться: предком берем что-нибудь типа TWinControl, рисуем свое, используем TCanvas, и радуемся! Так вот, уважаемые товарищи: фигня! З.Ы. пример - переделывал так TEdit. Начать с того, что НИ ОДИН стандартный компонент или высокоуровневое средство в дельфях не дает доступ к регионам, а как без них прикажете рисовать окошки неправильной формы? Пока про это не узнал, все тормозило и глючило. После того, как узнал и переделал - осталось 15 строчек кода, который работает и все делает и несколько override процедур, которые его вызывают Немного уточню вопрос - есть способ узнать дескриптор для вложенных компонентов? (пример - combobox, у которого отдельно область текста, отдельно кнопка, отдельно окошко списка). Как вариант - есть книжки/сайты/статьи, где разбираются компоненты vcl? |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 13 Всего: 111 |
||||
|
||||
| safright |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.7.2008 Где: Тольятти Репутация: нет Всего: нет |
Пасиб, Поработитель мира
Нашел несколько интересных вещей, а коммент:
меня порадовал ...ППЦ... в DRKB есть мессаги винды... и так много Тема все еще открыта, ждем-с. |
|||
|
||||
| safright |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.7.2008 Где: Тольятти Репутация: нет Всего: нет |
Эх, судя по всему, сделать как мне хоцца врядли получится... Дело в том, что с простыми компонентами (типа TEdit, TProgressBar и т.п.) подход "перекроить окошко, пока оно не очухалось" работает, т.к. собственно оконных элементов там одна штука (не вдаваясь в подробности - на самом деле больше, но это не важно), т.е. только один элемент может получить фокус ввода, есть один дескриптор, который и отвечает за окошко. В TCheckBox, TComboBox таких элементов больше. Так, в ComboBox есть аж 3 вложенных окна (дескрипторы можно достать в protected, имена FListHandler, FEditHandler, FDropDownHandler) и один дескриптор (собственно, свойство Handle), отвечающий за само окно. В общем - жуть!
Придется все эти писать ручками... ну да ладн. Вопрос модерам и всем желающим - стоит статью тиснуть про простые вещи (Edit, ProgressBar и еще несколько), как их переделывать визуально? Тема, как показала практика, нетривиальная, вдруг пригодиться... Всем спасибо и досвидания. |
|||
|
||||
| Burka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.5.2007 Репутация: нет Всего: 2 |
Поддерживаю, вот есть исходник прогрессбара в котором можно вставлять картинку вместо полоски. Но разобратся в этом и правда сложно. Присоединённый файл ( Кол-во скачиваний: 9 )
ALProgressBar.txt 17,75 Kb-------------------- Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей. |
|||
|
||||
| Del2007 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 27.9.2008 Репутация: нет Всего: нет |
Хочу CheckBox'ы как у Nod'а
|
|||
|
||||
| FoXIT |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
Товарищи!
Мне тоже нужен прозрачный чекбокс. Может есть готовые компоненты? Или кто нибудь сможет сделать стандартный чекбокс прозрачным. |
|||
|
||||
| cemick |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: нет Всего: 6 |
На крайний случай WM_Paint ловить
|
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |