Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> изменение вида TCheckBox, изменить вид компонента TCheckBox 
:(
    Опции темы
safright
Дата 14.8.2008, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.7.2008
Где: Тольятти

Репутация: нет
Всего: нет



Доброго времени суток!
Суть задачи - "сделать клон с другим лицом", т.е. полностью скопировать компонент, изменив его внешние данные. В данном случае - TCheckBox. Необходимые изменения: перерисовать сам бокс (убрать 3Д границы и изменить область на RoundRect) и сделать так, чтобы лейбл с ним рядом рисовался на прозрачном фоне. А, еще изменить цвет внутри коробочки (желательно - и grayed) на произвольный.

В принципе, я представляю, как изменить внешний вид (region'ы рулять! smile ), но как получить дескриптор этого бокса я полный без понятий  smile 

Дабы не переписывать предка TCustomCheckBox, хорошо бы все реализовать на API... собсна, затем и пост smile
PM MAIL ICQ   Вверх
Burka
Дата 14.8.2008, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.5.2007

Репутация: нет
Всего: 2



Какое там вин апи
http://www.hostmake.ru/articles/delphi/345/

Это сообщение отредактировал(а) Burka - 14.8.2008, 21:13


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
safright
  Дата 14.8.2008, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.7.2008
Где: Тольятти

Репутация: нет
Всего: нет



Цитата(Burka @ 14.8.2008,  21:13)
Какое там вин апи
http://www.hostmake.ru/articles/delphi/345/

Я этих книжек/статей/постов на форумах за последние пару недель перечитал стока, что уже могу сам написать книжку. Другое дело, что где-то в 90% из них говориться:  предком берем что-нибудь типа TWinControl, рисуем свое, используем TCanvas, и радуемся! Так вот, уважаемые товарищи: фигня!  smile  У мну конкретная задача - сделать клон с изменением графики. Если кто смотрел исходники vcl - поймет, почему API. Если делать ручками заново, то я буду это делать два месяца (учитывая, что мне не тока ентот чекбокс передлывать), а эффективность у таких "компонетов" будет как у танка в горах.

З.Ы. пример - переделывал так TEdit. Начать с того, что НИ ОДИН стандартный компонент или высокоуровневое средство в дельфях не дает доступ к регионам, а как без них прикажете рисовать окошки неправильной формы? Пока про это не узнал, все тормозило и глючило. После того, как узнал и переделал - осталось 15 строчек кода, который работает и все делает и несколько override процедур, которые его вызывают  smile . А, чуть не забыл - еще пять строчек в конструкторе задают начальные цвета! Огромный объем, правда?  smile 

Немного уточню вопрос - есть способ узнать дескриптор для вложенных компонентов? (пример - combobox, у которого отдельно область текста, отдельно кнопка, отдельно окошко списка). Как вариант - есть книжки/сайты/статьи, где разбираются компоненты vcl?
PM MAIL ICQ   Вверх
Yanis
Дата 15.8.2008, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 13
Всего: 111





--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
safright
Дата 15.8.2008, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.7.2008
Где: Тольятти

Репутация: нет
Всего: нет



Пасиб, Поработитель мира  smile 
Нашел несколько интересных вещей, а коммент:
  
Код

public
    { Public declarations }
    // Если поместить Create и Destroy в раздел protected,
    // то Delphi начинает ругаться.
    Constructor Create(AOwner : TComponent); override;
    Destructor Destroy; override; 

меня порадовал  smile 

...ППЦ... в DRKB есть мессаги винды... и так много  smile smile

Тема все еще открыта, ждем-с.
PM MAIL ICQ   Вверх
safright
Дата 15.8.2008, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.7.2008
Где: Тольятти

Репутация: нет
Всего: нет



Эх, судя по всему, сделать как мне хоцца врядли получится... Дело в том, что с простыми компонентами (типа TEdit, TProgressBar и т.п.) подход "перекроить окошко, пока оно не очухалось" работает, т.к. собственно оконных элементов там одна штука (не вдаваясь в подробности - на самом деле больше, но это не важно), т.е. только один элемент может получить фокус ввода, есть один дескриптор, который и отвечает за окошко. В TCheckBox, TComboBox таких элементов больше. Так, в ComboBox есть аж 3 вложенных окна (дескрипторы можно достать в protected, имена FListHandler, FEditHandler, FDropDownHandler) и один дескриптор (собственно, свойство Handle), отвечающий за само окно. В общем - жуть!  smile 

Придется все эти писать ручками... ну да ладн.

Вопрос модерам и всем желающим - стоит статью тиснуть про простые вещи (Edit, ProgressBar и еще несколько), как их переделывать визуально? Тема, как показала практика, нетривиальная, вдруг пригодиться...

Всем спасибо и досвидания.
PM MAIL ICQ   Вверх
Burka
Дата 16.8.2008, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.5.2007

Репутация: нет
Всего: 2



Цитата

Вопрос модерам и всем желающим - стоит статью тиснуть про простые вещи (Edit, ProgressBar и еще несколько), как их переделывать визуально?

Поддерживаю, вот есть исходник прогрессбара в котором можно вставлять картинку вместо полоски. Но разобратся в этом и правда сложно. 



Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  ALProgressBar.txt 17,75 Kb


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
Del2007
Дата 27.9.2008, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 27.9.2008

Репутация: нет
Всего: нет



Хочу CheckBox'ы как у Nod'а smile 
PM MAIL   Вверх
FoXIT
Дата 5.5.2009, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 5.5.2009

Репутация: нет
Всего: нет



Товарищи!
Мне тоже нужен прозрачный чекбокс.
Может есть готовые компоненты?
Или кто нибудь сможет сделать стандартный чекбокс прозрачным.
PM MAIL   Вверх
cemick
Дата 6.5.2009, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 6.7.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 6



На крайний случай WM_Paint ловить
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0548 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.