Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > C++ Builder
Перезагрузить страницу Плавное открытие и закрытие окон
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
daniilpetrov daniilpetrov вне форума
Member
 
Аватар для daniilpetrov
 
Сообщений: 213
Сказал(а) спасибо: 33
Поблагодарили 3 раз(а) в 2 сообщениях
Регистрация: 10.06.2011
Адрес: Россия
По умолчанию Плавное открытие и закрытие окон - 20.11.2013, 10:27

Всем привет давно не писал!

Вопрос в следующем, накропал простой алгоритм плавного открытия и закрытия окон через AlphaBlendValue:

Открытие (OnShow):
for (int i = 0; i < 255; i++) {
AboutForm->AlphaBlendValue = i;
Sleep(2);
}
Закрытие (OnClose):
for (int i = 255; i > 0; i--) {
AboutForm->AlphaBlendValue = i;
Sleep(2);
}
Но это не совсем правильно, в событие на открытие окна код работает до его показа, как мне сделать так, чтоб он работал после показа окна? Раньше делал при помощи таймера, но это более громоздко, если подскажете до того, как сломаю голову и допетрю сам, буду очень благодарен
Ответить с цитированием
  (#2 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,399
Сказал(а) спасибо: 22
Поблагодарили 937 раз(а) в 921 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 20.11.2013, 12:18

Либо таймер, либо поток (но получится то же самое).
Плавным показом занимается операционная система. Приложение же может лишь использовать костыли типа таймера и анимации на нём.

После показа - показывать сначала невидимое окно, потом проявлять.
Ответить с цитированием
  (#3 (permalink)) Старый
daniilpetrov daniilpetrov вне форума
Member
 
Аватар для daniilpetrov
 
Сообщений: 213
Сказал(а) спасибо: 33
Поблагодарили 3 раз(а) в 2 сообщениях
Регистрация: 10.06.2011
Адрес: Россия
По умолчанию 20.11.2013, 12:28

Я так и понял, что придётся втыкать таймер, думал, может, есть способ проще а можете дать ссылочку на простой пример создания, использования и удаления потока? Уже долгое время не могу подойти к решению этого вопроса
Ответить с цитированием
  (#4 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,399
Сказал(а) спасибо: 22
Поблагодарили 937 раз(а) в 921 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 20.11.2013, 12:36

В билдере в примерах есть, сортировка в 3 потока.
Всё равно придётся вызов из потока синхронизировать с потоком GUI, тот же таймер получится.
Ответить с цитированием
Пользователь сказал cпасибо:
daniilpetrov (20.11.2013)
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закрытие всех окон Oxlamon .NET 2 03.06.2013 11:43
Как в реальном времени отслеживать открытие закрытие файлов dimonVDL C++ Builder 6 06.09.2010 18:23
плавное затухание светодиода LEKSTER Электроника 13 25.03.2010 20:38
Открытие нескольких новых окон при нажатии на одну ссылку rwety Java 0 29.08.2008 20:43
Открытие и закрытие файлов Red1Kk С/С++ 11 11.03.2008 07:50
Открытие нескольких окон браузера Crash_ower Delphi 3 18.09.2006 01:53
Form.show автоматическое открытие и закрытие окон demonphp Delphi 4 26.01.2006 16:34
Плавное появление окна imported_Maxwell WinAPI 10 07.12.2005 03:05
Закрытие приложения и закрытие всех соединений Patriot Delphi 4 25.03.2005 23:53
DestroyWindow открытие и закрытия окон Drey^the^first Visual C++ 1 10.09.2004 10:06
Открытие программы поверх всех окон anzor C++ Builder 2 25.07.2004 02:08
Открытие и закрытие программы при помощи BAT файла Anonymous Вопросы начинающих программистов 0 06.02.2003 14:20



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов