Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Эффект появления окна


Автор: USSR 13.7.2006, 00:29
Народ, приведите плз примеры как релизовать необычный эффект появления/закрытия окна на WinAPI, т.е. чтобы окно не просто тупо появлялось, а как-то необычно. ( на языке вертится как объяснить понятнее, но не получается 8) )
З.Ы. Ссылку на AlphaEffects не давать 
З.З.Ы. За сырец был бы особо благодарен 

Автор: Romikgy 13.7.2006, 08:47
Цитата(USSR @  12.7.2006,  23:29 Найти цитируемый пост)
а как-то необычно

точнее? 

Автор: Snowy 13.7.2006, 09:47
Открой MSDN.
Найди функцию AnimateWindow
Всё. Анимация готова.

Добавлено @ 09:49 
Пример:
Код
AnimateWindow(Handle, 500, AW_HIDE or AW_BLEND);
 

Автор: Alexeis 13.7.2006, 10:23
После этого желательно вызвать show формы, поскольку без этого форма так и не узнает видима ли она

Добавлено @ 10:26 
иначе будут глюки. 

Автор: Snowy 13.7.2006, 10:38
Это был пример исчезания.
Для появления
Код
AnimateWindow(Handle, 500, AW_SHOW or AW_BLEND);

Ну и другие флаги - в MSDN. 

Автор: USSR 13.7.2006, 14:31
Спасибо, сейчас попробую 

Автор: Akella 14.7.2006, 15:49
Цитата(alexeis1 @  13.7.2006,  10:23 Найти цитируемый пост)
После этого желательно вызвать show формы, поскольку без этого форма так и не узнает видима ли она

Добавлено @ 10:26 
иначе будут глюки.

Код

procedure TfmPrepEdit.FormShow(Sender: TObject);
begin
  AnimateWindow(Handle, 300, AW_VER_POSITIVE{AW_VER_NEGATIVE});
end;

 

Автор: USSR 14.7.2006, 19:52
спасибки. Но я уже после поста Snowy во все разобрался 

Автор: Mr.Floppy 27.7.2006, 15:21
Цитата
AnimateWindow(Handle, 500, AW_SHOW or AW_BLEND);

Флага AW_SHOW нет.
Есть такие:
  • AW_SLIDE
    Uses slide animation. By default, roll animation is used. This flag is ignored when used with AW_CENTER. 
  • AW_ACTIVATE
    Activates the window. Do not use this value with AW_HIDE. 
  • AW_BLEND
    Uses a fade effect. This flag can be used only if hwnd is a top-level window. 
  • AW_HIDE
    Hides the window. By default, the window is shown. 
  • AW_CENTER
    Makes the window appear to collapse inward if AW_HIDE is used or expand outward if the AW_HIDE is not used. The various direction flags have no effect. 
  • AW_HOR_POSITIVE
    Animates the window from left to right. This flag can be used with roll or slide animation. It is ignored when used with AW_CENTER or AW_BLEND.
  • AW_HOR_NEGATIVE
    Animates the window from right to left. This flag can be used with roll or slide animation. It is ignored when used with AW_CENTER or AW_BLEND.
  • AW_VER_POSITIVE
    Animates the window from top to bottom. This flag can be used with roll or slide animation. It is ignored when used with AW_CENTER or 
    AW_BLEND. 
  • AW_VER_NEGATIVE
    Animates the window from bottom to top. This flag can be used with roll or slide animation. It is ignored when used with AW_CENTER or AW_BLEND.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/animatewindow.asp   

Автор: Snowy 27.7.2006, 15:48
Нет, так нет. Можешь считать его равным нули и не указывать.
Он по умолчанию, если не укажешь AW_HIDE.

Добавлено @ 15:49 
F? ну да. Ошибся - он зовётся AW_ACTIVATE 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)