Форум: "Компоненты";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];
ВнизУниверсальная кнопка <i>(совместная разработка)</i> Найти похожие ветки
← →
Glex © (2006-02-03 21:25) [0]Предлагаю) Составил небольшой дизайн-док!
Это кнопка. В неё входят 4 или 7 рисунков, ответственных за разные состояния кнопки. Рисунки полностью поддерживают png(спасибо Gustavo Huffenbacher Daud, автору TPngImage). Поддерживают анимированные gif"ы(спасибо неизвестному автору =) ).
При переходе кнопки из состояния a в состояние b происходит следующее:
1) Копируется в t1 участок экрана с изображением последнего кадра картинки a.
2) ActiveImage^:= b;
3) Копируется в t2 участок экрана с изображением первого кадра картинки b
4) ActiveImage^:= t1;
5) К t1 применяется эффект, который в конце концов превращает t1 в t2. Например: Morph(t1, t2, MorphStyle).
6) ActiveImage^:= b;
Шаги 1-4 нужны для корректной работы с alpha-channel png.
TUniButton
Свойства:
[
ButtonStyle: set of (bsSimple, bsSwitch);
]
[
4/7 TExtImage:
if bsSimple in ButtonStyle then
1) OnMouseLeave(Default)
2) OnMouseOver
3) OnMouseDown
4) Disabled
else
1) OnMouseLeaveOn(Default)
2) OnMouseOverOn
3) OnMouseDownOn //обычно сюда ставят то же, что и в 4
4) OnMouseLeaveOff(Default)
5) OnMouseOverOff
6) OnMouseDownOff
7) Disabled
]
[
Время морфинга(в ms, 0 - без морфинга):
if bsSimple in ButtonStyle then
Morph 1-2 Time: integer;
Morph 2-3 Time: integer;
Morph 3-2 Time: integer;
Morph 4-1 Time: integer;
else
Morph 1-2 Time: integer;
Morph 2-3 Time: integer;
Morph 3-2 Time: integer;
Morph 7-1 Time: integer;
Morph 4-5 Time: integer;
Morph 5-6 Time: integer;
Morph 6-5 Time: integer;
Morph 7-4 Time: integer;
]
[
Morphstyle: set of (msFading, msColorDifference, msSlide, etc...);
(* Эффектов можно сколько угодно понапридумывать, займусь *)
]
[
Caption: TExtCaption (* Font, Shadow: TExtShadow, Transparency *)
]
Ну, сделаем себе хорошее? ))
Своё имя в разработчиков даже включать не буду, так как могу только эффекты описать да графики кучу нарисовать. Всё ж таки я дизайнер больше)
Компонент будет полностью Freeware и OpenSource, кто несогласен, даже и не пишите ничего здесь!
PS: Приветствую критику и гадости. Типа, "Нашёлся тут, велосипед изобретает))"
← →
Юрий Зотов © (2006-02-04 03:28) [1]1. Не "4 или 7" рисунков, а ссылка на внешний ImageList.
2. Не "4 или 7" состояний, а коллекция состояний. Каждое состояние - элемент коллекции со свйствами ImageIndex, MorphTime и любыми другими.
← →
Gero © (2006-02-04 12:12) [2]А зачем такое надо?
← →
Admeral © (2006-02-04 17:58) [3]
> А зачем такое надо?
Для красоты :)
← →
Glex © (2006-02-04 18:46) [4]Спасибо.
Юрий, а не могли бы вы сделать основу, так как, похоже, вы в этом разбираетесь.
Что касается ImageList, он неудобен в работе с png рисунками и нельзя будет задавать свойства каждому Image.
Ход работы: В классе TImageForBtn описал события OnMouseEnter, OnMouseLeave;
← →
Юрий Зотов © (2006-02-05 01:27) [5]> Glex © (04.02.06 18:46) [4]
> Юрий, а не могли бы вы сделать основу
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=215
> похоже, вы в этом разбираетесь.
Спасибо. Хочется на это надеяться.
> Что касается ImageList, он неудобен в работе с png рисунками
Стандартный - да. Значит, надо написать нестандартный. С него и начать.
> нельзя будет задавать свойства каждому Image.
И не надо. Они задаются в элементе коллекции.
← →
Ricks © (2006-02-05 02:07) [6]Могу скинуть такую готовую кнопку только на GDI+
Там только 3 состояния - normal, hover, pressed, но зато работает не только с PNG а и со всем, что есть в системе!
Вобщем ты типа велосипед изобретаешь, как сам сказал :)
← →
Ricks © (2006-02-05 02:15) [7]http://www.ricks.pisem.net/button.zip
правда она немножко недоделанная, но можно и за основу взять и понапридумывать там всякого-разного, если кто чего желает! :)
Желаю успехов!
← →
аноним (2006-02-05 10:02) [8]TPngComponents
там уже есть TPngImageList и многие привыкли его использовать ) аналогов не знаю ) может имеет смысл сделать на базе него? сам PngComponents (смотрим www.torry.net) построен на базе PNGImage. так что думаю является отличным вариантом!
← →
Glex © (2006-02-05 20:21) [9]http://www.alphaskins.com/sfiles/acnt_reg7.zip (1.3 Mb)
Пароль для распаковки архива с модулями - название месяца, следующего после августа, набранное маленькими русскими буквами в английской раскладке :))
Нашёл по TPNGImageList.
Бесплатен для Non-Commercial/Commercial Use для жителей РФ.
Разработчики с хорошим каналом, посмотрите, имхо, много полезного в плане организации можно почерпнуть.
← →
Glex © (2006-02-17 13:29) [10]Кстати, где можно взять DirectDraw.dcu?
← →
Glex © (2006-02-17 14:29) [11]Спасибо, уже не надо. Выкачал всё, благо всего 6 Mb.
Страницы: 1 вся ветка
Форум: "Компоненты";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.011 c