Вылет окна
|
Лена: А у нас вчера под окнами 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 большая рамка перетекает в маленькую – окно улетает!
|