|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.10.2010, 05:14 | #1 |
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2007
Сообщений: 157
|
Эффекты формы Aero Show и Aero Hide
Доброго времени суток! Вопрос к знатокам!
Я делаю программку и пытаюсь реализовать эффекты формы Aero Show и Aero Hide в Windows XP так же как это делают AlphaSkins... Вот вроде бы получилось, но как всегда свои заморочки... Вот здесь выкладываю свой код проекта! А здесь демку... чтобы увидеть эффект Aero выберите какую-нибудь картинку формата так 300х300 и откройте... и увидите эффект... Закрыть форму можно просто кликнув по ней левой кнопкой мышки... Вопрос: Как узнать момент когда форма пропадает... Чтобы сделать скриншот указанной области и чтобы форма не попала в этот скриншот? Я делаю так: Код:
И другой вопрос: Все кто смотрел данный код, скажите плз правильно реализовано или мб. есть другой более простой способ?.. Заранее спасибо! Последний раз редактировалось SalasAndriy; 04.10.2010 в 15:53. |
04.10.2010, 19:45 | #2 |
Участник клуба
Регистрация: 29.09.2008
Сообщений: 1,234
|
неплохая реализация! и твои опасения не подтвердились, у меня комп слабый, но никаких ошибок и недостатков не было замечено
|
04.10.2010, 23:33 | #3 | ||
Студент, не
Старожил
Регистрация: 29.01.2009
Сообщений: 2,067
|
Цитата:
Цитата:
* ушёл изучать исходник *
I am the First of Cyber Evolution...
I am the First to Program your Future... |
||
05.10.2010, 19:21 | #4 | ||
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2007
Сообщений: 157
|
Цитата:
Цитата:
|
||
05.10.2010, 20:03 | #5 |
Форумчанин
Регистрация: 15.02.2008
Сообщений: 621
|
эмм... на мой взгляд нужно реализовывать в отдельных нитях всех и использовывать TEvent
Помог? Ну так нажми на весы!
|
05.10.2010, 20:44 | #6 |
Студент, не
Старожил
Регистрация: 29.01.2009
Сообщений: 2,067
|
Ну так нужно просто уменьшать окно, зачем скрин-то? о__О
Всё что потребуется - изображение всего своего окна, но это думаю через PrintWindow лучше... А AnimateWindow "уже не то"?)) Ща попробую...
I am the First of Cyber Evolution...
I am the First to Program your Future... |
05.10.2010, 20:46 | #7 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Цитата:
2. В Win7/Vista за это отвечает DWM (Dynamic Windows Manager), именно он рендерит все окна в памяти и в конце концов формирует целевое изображение, но исходя из того, что это системная библиотека скрывающая куча API от нас, то и работает она намного быстрее, и в уровне пользователя не выйдет достичь такой скорости и качества. 3. То что вы делаете, это грубо говоря "извращение", т.к. создавать дополнительную нагрузку (скриншот, рисование на контексте целевого изображения (окна)), ну сами подумайте 4. если речь идет о реализации собственной библиотеки, которая предоставляла бы подобные эффекты, и была бы не зависима от платформы (имеется ввиду не менее NT) то лучше реализуйте не исходя из логики VCL, а сразу из Layered (слоев), т.е. каждый контрол уже сразу слой, не пытайтесь строить на основе VCL, это жесть вы не первый. |
|
05.10.2010, 21:23 | #8 | ||
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2007
Сообщений: 157
|
ВОВАН13 я всё понимаю поэтому и задал вопрос:
Цитата:
Мне не нужно окно на слоях, а мне нужен только сам эффект пусть даже он будет с помощью Layered окон, допустим так: показываю эффект и по окончанию его я поверх вывожу уже готовую форму VCL, а Layered оконо закрываю... Но получится ли так как мне нужно? подскажите в каком направлении копать?) Я пробовал это делать с помощью Form.AlphaBlendValue... И получилось ужасное зрелище... у меня комп не очень сильный... и наблюдал тормоза... а быстрее получилось рисовать на контексте... вот... Цитата:
Последний раз редактировалось SalasAndriy; 05.10.2010 в 21:34. |
||
05.10.2010, 21:42 | #9 | |||
Студент, не
Старожил
Регистрация: 29.01.2009
Сообщений: 2,067
|
Цитата:
Слегка не подумал сначала - нужно именно с полупрозрачностью чтоб? Я почему-то решил что не обязательно...) Цитата:
Цитата:
I am the First of Cyber Evolution...
I am the First to Program your Future... |
|||
05.10.2010, 21:50 | #10 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Цитата:
А разве создание Layered окна и манипуляции скрытия/показа это не "извращение" ? ну да ладно, пробуйте разные идеи, и реализуйте, больше опыта получите. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Форма Aero | GBAXA | Общие вопросы Delphi | 7 | 22.08.2010 13:53 |
Windows 7. Как сменить обои и цвет прозрачности Aero программно? | TwiX | Помощь студентам | 1 | 02.11.2009 17:59 |
Windows Vista\7 Aero - проблемы! | Vol666 | Общие вопросы Delphi | 7 | 06.09.2009 12:52 |
Проблема с DWM Aero | Ivan_32 | Win Api | 0 | 25.06.2009 22:06 |