скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Вылет окна




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






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook