Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 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.017 c
5-1139913121
max1000
2006-02-14 13:32
2006.10.01
Возвращаясь к Tpanel .Зависает Delphi.


1-1155885997
Mechanic
2006-08-18 11:26
2006.10.01
Отрисовка Формы


2-1158225782
Монг
2006-09-14 13:23
2006.10.01
messagedig


15-1157662081
Offtoper
2006-09-08 00:48
2006.10.01
Просто оффтоп


15-1157705932
pavel_guzhanov
2006-09-08 12:58
2006.10.01
Подскажите, что можно почитать про программирование с





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский