Картинки в заголовке TabSheet
Модератор: Модераторы
Картинки в заголовке TabSheet
Доброго времени суток, комрады.
Глянул исходники PageControl'а и сабжа. Чего-то все так печально. OwnerDraw в published-свойствах закомментирован, Options (те, которые nboShowCloseButtons, nboShowAddTabButton) не работают, хотя эвент для кнопки закрытия присутствует.
Стоит банальная задача, справа нарисовать кнопку закрытия вкладки. Подскажите, куда копать, где рисовать?
Глянул исходники PageControl'а и сабжа. Чего-то все так печально. OwnerDraw в published-свойствах закомментирован, Options (те, которые nboShowCloseButtons, nboShowAddTabButton) не работают, хотя эвент для кнопки закрытия присутствует.
Стоит банальная задача, справа нарисовать кнопку закрытия вкладки. Подскажите, куда копать, где рисовать?
- Снег Север
- долгожитель
- Сообщения: 3067
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Делать helper к PageControl или своего наследника PageControl'а или поискать готовый компонент с нужными свойствами. Ваш Кэп.
Наследник и подразумевался. Рисовать-то где?
Проще всего собрать проект под Qt там это реализовано и кроссплатформенно или использовать компонент ATTabs
http://wiki.freepascal.org/ATTabs
Потом есть Lazarus_Custom_Drawn_Controls но там все своими руками дописывать.
http://wiki.freepascal.org/ATTabs
Потом есть Lazarus_Custom_Drawn_Controls но там все своими руками дописывать.
- Снег Север
- долгожитель
- Сообщения: 3067
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
На Canvas контрола.
Я бы ограничился helper'ом - слишком мелкая задача для компонента-наследника.
Я бы ограничился helper'ом - слишком мелкая задача для компонента-наследника.
А как хелпер поможет поменять поведение контрола?
Даже наследником не всегда всё можно нарисовать\отловить
Даже наследником не всегда всё можно нарисовать\отловить
Нет принципиальной разницы между наследником и хелпером для моих задач, за исключением нюансов. Я просто перекрыл WMPaint в наследнике и все.
Но пока ищу решение одной проблемы. Мне нужно получить координаты заголовка активной вкладки. В дельфях это решается просто в OnDrawTab, там Rect можно получить из параметров события. В Лазаревском PageControl'е в исходниках Мамай прошелся - такой бардак. Есть идеи?
Но пока ищу решение одной проблемы. Мне нужно получить координаты заголовка активной вкладки. В дельфях это решается просто в OnDrawTab, там Rect можно получить из параметров события. В Лазаревском PageControl'е в исходниках Мамай прошелся - такой бардак. Есть идеи?
- Снег Север
- долгожитель
- Сообщения: 3067
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
zub писал(а):А как хелпер поможет поменять поведение контрола?
helper имеет доступ ко всем скрытым полям и свойствам основного компонента и позволяет поменять всё
zoltanleo писал(а):В дельфях это решается просто в OnDrawTab...
Разработчики пишуть, что в Lazarus эту процедуру потеряли где-то в одной из предыдущих версий...
Оттуда, где Мамай прошёлся... писал(а):property streamed in older Lazarus revision.
>>helper имеет доступ ко всем скрытым полям и свойствам основного компонента и позволяет поменять всё
то такое... поле не открыто - это или баг или лезти туда не стоит. кароче всяко лезти туда не стоит))
то такое... поле не открыто - это или баг или лезти туда не стоит. кароче всяко лезти туда не стоит))
- Снег Север
- долгожитель
- Сообщения: 3067
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
zub???
helper - великолепная альтернатива для создания наследников стандартных компонентов, если дополнения невелики. Основной код не трогается, мороки несравненно меньше. На делфи пользуюсь давно и часто.
helper - великолепная альтернатива для создания наследников стандартных компонентов, если дополнения невелики. Основной код не трогается, мороки несравненно меньше. На делфи пользуюсь давно и часто.
Снег Север
Я тебя не понимаю.
хелпером не сделать то что можно в наследнике, такчто это никакая не альтернатива - сахарок синтаксический, не больше
Я тебя не понимаю.
хелпером не сделать то что можно в наследнике, такчто это никакая не альтернатива - сахарок синтаксический, не больше
- Снег Север
- долгожитель
- Сообщения: 3067
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
zub,
я же не спорю, что в наследнике можно сделать больше, но я часто встречаюсь с необходимостью только немного расширить стандартный функционал компонента и не собираюсь городить наследников, если хватает хелпера.
я же не спорю, что в наследнике можно сделать больше, но я часто встречаюсь с необходимостью только немного расширить стандартный функционал компонента и не собираюсь городить наследников, если хватает хелпера.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
Снег Север, но хелперы же реально дыра в безопастности. Впрочем, сейчас на нее забивают большой болт, так что удивляться нечему.
А, кстати, что мешает просто тупо размещать кнопку поверх заголовка вкладки? Или одну кнопку поверх всего компонента для закрытия текущей страницы?
А, кстати, что мешает просто тупо размещать кнопку поверх заголовка вкладки? Или одну кнопку поверх всего компонента для закрытия текущей страницы?
- Снег Север
- долгожитель
- Сообщения: 3067
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Снег Север писал(а):Снег Север, но хелперы же реально дыра в безопастности.
Не понимаю этого. С таким же успехом можно любой свой код назвать "дырой в безопастности".
Лекс Айрин писал(а):А, кстати, что мешает просто тупо размещать кнопку поверх заголовка вкладки?
Как я понимаю, у топикстартера проблема в определении координат заголовка.
