Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Анимация окна [Delphi, Windows]


Страницы:   1 2

Trible ©   (2007-10-31 05:24:00) 

Как сделать в КОЛ, чтобы при запуске приложения происходил эффект анимации главного окна - прозрачность плавно изменялась от полупрозрачного до непрозрачного?


Trible   (2007-11-01 10:51:00) [21]


> Дмитрий К ©   (01.11.07 06:38) [5]

Ну чернеет форма при закрытии, сами убедитесь ...


Дмитрий К   (2007-11-01 06:38:00) [22]

А если так:
 i := form.AlphaBlend - 1;
 while i > 0 do
 begin
   form.AlphaBlend := i;
   form.ProcessPaintMessages; // ProcessMessages;
   dec(i);
   {Sleep(10);}
 end;


Trible   (2007-11-01 04:58:00) [23]


> Compiler ©   (01.11.07 01:25) [3]
> Еще хороший способ.AnimateWindow(form.handle, 2000, AW_BLEND
> or AW_HIDE);

Да хотелось бы адаптировать [1], чтоб работало при закрытии формы. Не пойму почему форма чернеет при закрытии.


Compiler   (2007-11-01 01:25:00) [24]

Еще хороший способ.
AnimateWindow(form.handle, 2000, AW_BLEND or AW_HIDE);


Trible   (2007-10-31 18:06:00) [25]


> Compiler ©   (31.10.07 12:43) [1]
> Сойдет?

Сойдет, спасибо. Вдогонку: а как обеспечить такую же анимацию при закрытии программы? Пробовал по OnClose для формы:


procedure TForm1.KOLFormClose(Sender: PObj);
var
i:integer;
begin
i:=255;
form.AlphaBlend:=255;
while i <> 0 do
begin
  Form1.form.AlphaBlend := i;
  Applet.ProcessMessages;
 dec(i);
end;
end;


Так вот, при закрытии форма почему-то чернеет на секунду, а потом уже идет анимация (изменение аьфа-бленда). Как побороть?


Compiler   (2007-10-31 12:43:00) [26]

Сойдет?

procedure TForm1.KOLFormFormCreate(Sender: PObj);
var
 i:integer;
begin
i:=0;
form.AlphaBlend:=0;
form.CreateWindow;
 while i<>  255 do
 begin
   Form1.form.AlphaBlend := i;
   Applet.ProcessMessages;
  inc(i);
 end;
end;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо