КурилкаВход | Регистрация
Новости | Поиск | ПользователиОбзор форумов / Общая конференция / Курилка / Опросы / TD
Конференция «Курилка»
Страницы:  1
antonn, это, помоему, твоё творение - happynewyaer_splash
 
Сами знаете от куда  (01-11-2008 16:25) цитата#634 
Привет.
Насколько я помню, ты, вроде, интересовался этой проблемой (создания splash'а с альфой) и даже ее решил (happynewyaer_splash - тому подтвердение). А решал ли ты задачу вывода на твой сплэш текста (обновляемого в процессе загрузки. Отображение загрузки модулей, например) или прогресса?

Кстати, вот тоже интересные ссылки по теме:
http://melander.dk/articles/alphasplash
http://melander.dk/articles/alphasplash2
 
антон  (01-11-2008 22:20[1] цитата#635 
"творение" :))

Вывод текста можно делать на тот же битмап, который и выводим (ессно сохранять перед этим исходный). Т.к. GDI немного колбасит альфаканал (проще говоря - обнуляет), то приходилось перегонять результирующий битмап в два временных (RGB в один и альфу во второй (байт альфы писался в RGB, получалось просто grayscale)), на них рисовать текст (на маску рисовался белый), собирать обратно в 32 битный и выводить через Updatelayerdwindow.
С компонентами плохо, сами они не отрисовываются, приходится их рисовать вручную, каждый раз вызывая ULW (а она все же тормозит при вызове) для обновленного битмапа.
В принципе у некоторых компонент есть метод painto(), и через него можно рисовать на канвасе битмапа (при этом не помню что с альфой, как бы не пришлось так же разбивать битмапы на маску и лицевую). Кнопки рисуются, прогрессбары тоже (только стоит заметить, что они рисуются так, как должны на форме рисоваться, т.е. у кнопок будет ободок цвета clbtnface), только топоро как то...
А если нужно просто "прогресс" нарисовать, то можно ведь и руками на канвасе прямоугольники начертить, причем выглядеть может куда лучше чем нарисованый виндовый контрол.

Еще неудобство есть с полями ввода, через paintto не рисуются каретки (и возможно выделение текста, не помню). Промучавшить достаточно долго решил написать свой edit, вроде сделал (все операции вручную, от каретки до select'а), но где то забросил и посеял :)
1
антон  (02-11-2008 01:30[2] цитата#636 
завтра дам пример сплеша с текстом и прогрессбаром.

PS "...с блекджеком и шлюхами!" (с) Бендер Родригес %)
 
бeлый космоc  (02-11-2008 01:42[3] цитата#637 
> антон (01-11-2008 22:20) [1]
> Т.к. GDI немного колбасит альфаканал (проще говоря - обнуляет),
> то приходилось перегонять результирующий битмап в два временных
> (RGB в один и альфу во второй (байт альфы писался в RGB,
> получалось просто grayscale)), на них рисовать текст (на
> маску рисовался белый), собирать обратно в 32 битный

джидиай плас?
 
антон  (02-11-2008 01:46[4] цитата#638 
до тех пор, пока мне будет хватать GDI я на GDI+ не перейду.
Есть причины, которые описать проще - "религиозные мотивы" :)
 
Сами знаете от куда  (02-11-2008 12:57[5] цитата#639 
А ты по ссылкам посмотрел? 
бeлый кoсмос  (02-11-2008 13:20[6] цитата#640 
> антон (02-11-2008 01:46) [4]
> пока мне будет хватать GDI я на GDI+ не перейду.


Тю уже ж хватает.

> антон (01-11-2008 22:20) [1]
> приходилось перегонять результирующий битмап в два временных
> (RGB в один и альфу во второй (байт альфы писался в RGB,
> получалось просто grayscale)), на них рисовать текст (на
> маску рисовался белый), собирать обратно в 32 битный

это как-то так:
http://static.diary.ru/userdir/4/2/9/8/429800/29710169.jpg

вообще есть в одном проектике сплешик с блекджеком и шлюхами, посмотрю как там зафигачено. Точно там джидиайплас и Updatelayerdwindow, а вот про каретку как-то не смотрел.
 
антон  (02-11-2008 13:23[7] цитата#641 
то, что по ссылкам я изучал пару-тройку лет назад, я кучу времени убил на эти скины (первоначально делал скины для часиков :) ), из всех варианов "украшения" форм есть всего "мало" - регионы, setlayerattributes и ulw :)
первая вырезает форму, вторая просто делает окно полу-прозрачным (именно top-level окошко, компоненты не смотря на "оконность" она не сделает прозрачными), третья просто тупо меняет "изображение" формы на битмап.
в принципе для многих задач хватило бы 1+2 способ, третий зает классные эффекты и качество, правда приходится отдуваться контролами :)
кстати, по поводу GDI и альфы - вот тут вроде написано, что они не дружат - http://microsoft-programming.hostweb.com/Topi...1/1/Default.aspx (насколько я это понял из своего корявого английского :))
 
антон  (02-11-2008 13:28[8] цитата#642 
> бeлый кoсмос (02-11-2008 13:20) [6]
> это как-то так:

да не, в принципе я то знаю как что работает, с битмапами (вообще с мультимедией) работаю давно. Стикеры свои так же рисуются (текст на них).

есть вариант с расположением на форме ulw контрола, но он не будет полупрозрачным, просто виндовым, и располагать его нужно не на полупрозрачных частях, а на непрозрачных (иначе ободок мешает и топорно выглядит).
Способ незамысловат :)
создаем динамически вторую форму, парентом ей указываем первую форму (она по сути ббудет лежать в первой форме), на эту динамическую кладем все компоненты. К первой форме применяем ULW, таким образом у нас будет форма, под которой красивый битмап, останется вырезать во вторпой форме область вокруг контролов (регионами) и получится, что контролы лежат на битмапе. Так без проблем можно сделать форму типа как в висте, по бокам пролупрозрачное стекло будет.
 
Сами знаете от куда  (02-11-2008 16:53[9] цитата#643 
антон, у тебя в контексте, битмап, означает *.bmp или непосредственно изображение в памяти, всмысле TBitMap?
Если .bmp, то почему бы не перейти на .png?
 
Сами знаете от куда  (02-11-2008 16:59[10] цитата#644 
Кстати, когда я говорил, про вывод текста или прогресса, то я имел в виду не стандартные виндовые контролы, а нарисованное ручками. Прогресс - бегущая в Ректе полоска, вывод текста - TextOut, и не более. Никаких событий на них не надо, просто информация о загрузке программы.
Было бы прикольно, если бы сплэш появлялся с fadeout эфектом.
 
antonn  (02-11-2008 17:20[11] цитата#645 
Битмап - Tbitmap, png еще не люблю (хотя бы от того, что модули для его понимания не мало весят, к тому же формат все же не совсем отлажен, у меня есть картинки убивающие GD-модуль у ПХП, часто бывает эксепшн на некоторых картинках :)).
Еще я все битмапы все равно пакую вместе, и сжимаю тем же zlib, что и в png, получается и места мало и не каждый сопрет :) (в стикерах, например, в ресурсы так упакованы скины и некоторые иконки).
Ну а контролы да, можно и руками рисовать, посмотри мою кликоманию - http://desksoft.ru/index.php?files&id=3&owner=3

насчет fade - хз, лень как то, сам сплеш нарисовал, щас кофе попью, подумаю, надо ли затухания прикручивать :)
 
antonn  (02-11-2008 17:23[12] цитата#646 
а так как я жуткий vcl'щик, то Tbitmap часто = *.bmp :) 
antonn  (02-11-2008 17:32[13] цитата#647 
сделал fade %) 
antonn  (02-11-2008 18:32[14] цитата#648 
вот:
http://antonn.com/xlam/screen_thread_splash.JPG
http://desksoft.ru/index.php?downloads=attachments&id=108 (zip, 280кб с EXE)

темка:
http://desksoft.ru/index.php?forum&p_id=990#post_990

возможно где то что то напутано, там с потоками замудрил :)
 
Сами знаете от куда  (02-11-2008 21:40[15] цитата#655 
Спасибо, посмотрим. 
бeлый кoсмос  (03-11-2008 12:59[16] цитата#660 
> вообще есть в одном проектике сплешик с блекджеком и шлюхами,
> посмотрю как там зафигачено.

Там в общем собственный edit, причём альфа - не главная особенность, почему он собственный, а не стандартный
 
Сами знаете откуда  (15-01-2009 10:38[17] цитата#703 
Блин, еле нашел тему, Фуф-ф-ф.
Блин, сырцы потерялись где-то надо было нати эту ветку, но нифига не помню, кроме "happynewyaer_splash", "творение", "antonn", "Сами знаете от куда" =)
У Антона на сайте, чего-то не нашел ничего, хотя, сейчас прошел по ссылке - действительно есть, правда только на форуме. Не плохо было бы в файлы выложить, во всячину, там, или в украшательства...
А нашел по запросу ""Сами знаете кто" +antonn" единственное упоминание этого форума =) Да еще и здесь (правда визуально помнил форум) пришлось поискать.
В общем нашел =) Гы-ы-ы.
1
Сами знаете откуда  (15-01-2009 10:40[18] цитата#704 
А вот еще что, нет перехода на добавленный пост после его добавления, собственно =)
Неудобство ;)
 
Сами знаете кто   (16-01-2009 17:21[19] цитата#705 
> А нашел по запросу ""Сами знаете кто"

ыыыы)))) Я хоть кому-то пригодился и помог )))))))
 
antonn  (16-01-2009 20:48[20] цитата#706 
развелось тут "сами знаете кого" :)) 
Страницы:  1
Статистика темы
Написать ответ
Автор:
 
 Защита от спамботовВведите ответ:
Сейчас на сайте: 6 гостей
Пользователи: Нет зарегистрированных пользователей
mdforum v0.93 
234/437 (918822/10238122)