TForm1::FormShow ()
{
// Обработчик на OnShow
this->AlphaBlendValue = 0;
this->AlphaBlend = true;
Timer1->Start(); // Запуск таймера
}
TForm1::Timer1Timer()
{
// Обработчик на OnTimer
if (this->AlphaBlendValue < 255)
{
this->AlphaBlendValue ++;
Timer1->Start();
}
else
{
this->AlphaBlend = false;
Timer1->Stop();
}
}
постепенное проявление формы
у меня такая проблема - надо мне, чтобы при загрузке форма проявлялась постепенно на экране, AlphaBlend не дает то, что надо.
Где-то видел исходник кажется на API, но где именно, не помню, пробовал найти - но по причине долгого отсутствия формулирования на русском языке все запросы в поисковиках не дали результата )))))
Буду благодарен за помощь
Цитата: Solomon
у меня такая проблема - надо мне, чтобы при загрузке форма проявлялась постепенно на экране, AlphaBlend не дает то, что надо.
AnimateWindow c параметром AW_BLEND.
Код:
При открытии форма объявляется абсолютно прозрачной, и запускается таймер.
По таймеру прозрачность формы увеличивается на единицу, до тех пор, пока не станет максимальной.
P.S. Можно написать аналогичный код для закрытия формы
А чем хуже AnimateWindow?
Типа, сначала выводится пустая форма, потом начинают отображаться рамки панелей, групбоксов.....
Цитата: el scorpio
Тем, что в моём примере можно использовать произвольный способ анимации - вплоть до последовательного отображения всех визуальных компонентов поотдельности (через свойство Controls)
Типа, сначала выводится пустая форма, потом начинают отображаться рамки панелей, групбоксов.....
Типа, сначала выводится пустая форма, потом начинают отображаться рамки панелей, групбоксов.....
Sir классно, вчера мучался с AnimateWindow, но проблема в том, что картинку помещенную на форму, он отображает потом, что мне совершенно не подходит
более точный код для BCB выглядит так
Код:
TForm1::FormShow ()
{
// Обработчик на OnShow
this->AlphaBlendValue = 0;
this->AlphaBlend = true;
Timer1->Enabled = true; // Запуск таймера
}
TForm1::Timer1Timer()
{
// Обработчик на OnTimer
if (this->AlphaBlendValue < 255)
{
this->AlphaBlendValue ++;
Timer1->Enabled = true;
}
else
{
this->AlphaBlend = false;
Timer1->Enabled = false;
}
}
{
// Обработчик на OnShow
this->AlphaBlendValue = 0;
this->AlphaBlend = true;
Timer1->Enabled = true; // Запуск таймера
}
TForm1::Timer1Timer()
{
// Обработчик на OnTimer
if (this->AlphaBlendValue < 255)
{
this->AlphaBlendValue ++;
Timer1->Enabled = true;
}
else
{
this->AlphaBlend = false;
Timer1->Enabled = false;
}
}
еще раз спасибо
Цитата: el scorpio
Тем, что в моём примере можно использовать произвольный способ анимации - вплоть до последовательного отображения всех визуальных компонентов поотдельности (через свойство Controls)
Типа, сначала выводится пустая форма, потом начинают отображаться рамки панелей, групбоксов.....
Типа, сначала выводится пустая форма, потом начинают отображаться рамки панелей, групбоксов.....
А примерчик последовательного появления контролов можно?
Код:
TForm1::Timer1Timer()
{
if (fItem_Index < this->ControlCount)
this->Controls [fItem_Index]->Visible = true;
else Timer1->Enabled = false;
}
{
if (fItem_Index < this->ControlCount)
this->Controls [fItem_Index]->Visible = true;
else Timer1->Enabled = false;
}
хотелось бы, чтобы каждый контрол на форме появлялся так же постепенно, как и сама форма, например, после полного проявления формы... а не просто визибл = тру на каком-то этапе... ;)
Возможно ли это?
Свойства "AlphaBlend" у компонентов формы нет, так что - только написанием собственного компонента.