Вылет окна

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

Лена: А у нас вчера под окнами HЛО висело… Хакер(злобно, не отрываясь от компьютера): -Кто ж его под «окнами» ставит, надо было под LINUX, тагда б не зависло…

Если Вы хотите ввести в изумление пользователя с первых минут его использования Вашего приложения, тогда самый верный способ — заставить окно “вылететь”, а не появиться обычным способом! Сделать это довольно легко, надо только описать два события: OnShow (на появление формы) и OnClose (на закрытие формы)Выглядеть это будет так:

procedure TForm1.FormShow(Sender: TObject);

var

RectSmall, RectNormal: TRect;

begin

RectSmall := Rect(0, 0, 0, 0);

RectNormal := Form1.BoundsRect;

DrawAnimatedRects(GetDesktopWindow, IDANI_CAPTION, RectSmall, RectNormal);

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

var

RectSmall, RectNormal: TRect;

begin

RectSmall := Rect(0, 0, 0, 0);

RectNormal := Form1.BoundsRect;

DrawAnimatedRects(GetDesktopWindow, IDANI_CAPTION, RectNormal, RectSmall);

end;

Мы объявляем две переменные класса TRect (От англ. Rectangle — прямоугольник ). Называем их, например RectSmall и RectNormal. Для RectSmall мы задаём нули: (0,0,0,0), тем самым указав начало координат, т.е. левый верхний угол экрана. В RectNormal помещаем рамку формы с помощью функции BoundsRect. Функция DrawAnimatedRects создаёт перетекание начальной рамки в конечную. В событии OnShow мы из маленькой рамки делаем большую – окно вылетает, а в событии OnClose большая рамка перетекает в маленькую – окно улетает!

{/codecitation}

Добавить комментарий