Плавность появления окон
От: Bungle  
Дата: 12.10.04 00:43
Оценка:
Как заставить окна выдвигаться из-за границ экрана, а так же, как достигнуть плавности их появления

Реализовация задачи на API, или средствами VCL

Зараннее спасибо ВСЕМ!!! Помогите ЛАМЕРУ
Re: Плавность появления окон
От: Ulin США  
Дата: 12.10.04 05:45
Оценка:
Здравствуйте, Bungle, Вы писали:

B>Как заставить окна выдвигаться из-за границ экрана, а так же, как достигнуть плавности их появления


B>Реализовация задачи на API, или средствами VCL


B>Зараннее спасибо ВСЕМ!!! Помогите ЛАМЕРУ



При открытии формы (OnCreate):
TRect r1,r2;
r1 = Rect(Left+Width/2,Top+Height/2,Left+Width/2,Top+Height/2);
r2 = BoundsRect;
DrawAnimatedRects(Handle,IDANI_CAPTION,&r1,&r2);

Форма будет как будто развертываться из середины.

А чтобы она при закрытии свертывалась в свою середину, то пишем в OnClose:

TRect r1,r2;
r1 = Rect(Left+Width/2,Top+Height/2,Left+Width/2,Top+Height/2);
r2 = BoundsRect;
DrawAnimatedRects(Handle,IDANI_CAPTION,&r2,&r1);  // меняется только последовательность последних параметров
Re: Плавность появления окон
От: JazzzMaster Россия  
Дата: 12.10.04 22:23
Оценка: 5 (1) +1
Здравствуйте, Bungle, Вы писали:

B>Как заставить окна выдвигаться из-за границ экрана, а так же, как достигнуть плавности их появления

B>Реализовация задачи на API, или средствами VCL
B>Зараннее спасибо ВСЕМ!!! Помогите ЛАМЕРУ

AnimateWindow() — то что тебе нужно
... << RSDN@Home 1.1.3 stable >>
Re[2]: Плавность появления окон
От: Bungle  
Дата: 13.10.04 02:38
Оценка:
Здравствуйте, JazzzMaster, Вы писали:

"AnimateWindow() — то что тебе нужно"

Как с ней работать приминительно в Делфи?
Re[2]: Плавность появления окон
От: Bungle  
Дата: 13.10.04 02:40
Оценка:
Здравствуйте, Ulin,

Спасиба ВАМ! Имненно оно и надо!
Re[3]: Плавность появления окон
От: JazzzMaster Россия  
Дата: 13.10.04 05:41
Оценка:
Здравствуйте, Bungle, Вы писали:

B>Как с ней работать приминительно в Делфи?


Например вот так:
procedure TForm1.FormCreate(Sender: TObject);
begin
  AnimateWindow(Handle, 200, AW_BLEND);
end;
... << RSDN@Home 1.1.3 stable >>
Re[4]: Плавность появления окон
От: Bungle  
Дата: 14.10.04 00:14
Оценка:
Здравствуйте, JazzzMaster, Вы писали:

JM>procedure TForm1.FormCreate(Sender: TObject);

JM>begin
JM> AnimateWindow(Handle, 200, AW_BLEND);
JM>end;
JM>[/pascal]

Спасиба, все Правильно!

Я не те параметры пихал!

Ктати вот, может поможет кому:


Const AW_HOR_NEGATIVE = &H2 'Анимация окна с права на лево.
            'Этот флаг используется совместно с
            'эффектами развёртывания и соскальзывания.

Const AW_VER_POSITIVE = &H4 'Анимация окна с верху в низ.
            'Этот флаг используется совместно с
            'эффектами развёртывания и соскальзывания.

Const AW_VER_NEGATIVE = &H8 'Анимация окна с низу в верх.
            'Этот флаг используется совместно с
            'эффектами развёртывания и соскальзывания.

Const AW_CENTER = &H10    'Окно сворачивается внутрь себя если
            'установлен флаг AW_HIDE,
            'иначе разворачивается

Const AW_HIDE = &H10000    'Скрывает окно,
            'по умолчанию окно появляется.

Const AW_ACTIVATE = &H20000 'Активизирует окно.
Const AW_SLIDE = &H40000    'Устанавливает эффект соскальзывания.
            'По умолчанию эффект развёртывания.

Const AW_BLEND = &H80000    'Эффект постепенного появления.
            'Применяется только к
            'окнам верхнего уровня.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.