Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Delphi и Lazarus


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Евгений/Genia007/
Статус: Профессионал
Рейтинг: 494
∙ повысить рейтинг »
Асмик Гаряка
Статус: Советник
Рейтинг: 175
∙ повысить рейтинг »
Сергей Бендер
Статус: Профессионал
Рейтинг: 148
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Delphi и Lazarus

Номер выпуска:1672
Дата выхода:13.01.2016, 11:51
Администратор рассылки:F®ost (Администратор)
Подписчиков / экспертов:14 / 8
Вопросов / ответов:1 / 1

Консультация # 188615: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: как можно сделать чтобы при запуске программы делфи самая первая форма появилась с анимацией и после 10 секунд стала не видимой или совсем закрылась. Но если закроется то все формы сразу закроются как можно сделать другую форму главной Заранее спасибочки ...

Консультация # 188615:

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
как можно сделать чтобы при запуске программы делфи самая первая форма появилась с анимацией и после 10 секунд стала не видимой или совсем закрылась. Но если закроется то все формы сразу закроются как можно сделать другую форму главной
Заранее спасибочки

Дата отправки: 08.01.2016, 11:37
Вопрос задал: arujan.nurlankul23 (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Евгений/Genia007/ (Профессионал):

Здравствуйте, arujan.nurlankul23!
Для анимации формы при открытии и закрытии можно использовать функцию AnimateWindow.
Функция AnimateWindow дает Вам возможность производить специальные эффекты при показе или сокрытии окон. Имеются четыре типа мультипликации: ролик, слайд, свертывание или развертывание и плавное альфа-перетекание.
Синтаксис

Код :
function AnimateWindow(hwnd: HWND,
dwTime: DWord, dwFlags: DWord);

Параметры
hwnd - Дескриптор окна, которое анимируется. Вызывающий поток должен владеть этим окном.
dwTime - Устанавливает, сколько необходимо времени, чтобы воспроизвести мультипликацию, в миллисекундах. Как правило, воспроизведение мультипликации занимает 200 миллисекунд.
dwFlags - Определяет тип мультипликации. Этот параметр может быть одно или несколько нижеследующих значений. Обратите внимание! что, по умолчанию, эти флажки дают желаемый результат при показе окна. Чтобы получать желаемый результат при сокрытии окна, используйте флажок AW_HIDE и логический оператор OR с соответствующими флажками.
AW_SLIDE Использует слайдовую анимацию. По умолчанию используется анимационный ролик (прокрутка мультипликации). Этот флажок игнорируется тогда, когда пользуется с флажком AW_CENTER.
AW_ACTIVATE Активизирует окно (при показе окна). Не используйте это значение совместно с AW_HIDE.
AW_BLEND Использует эффект постепенного изменения прозр ачности окна. Этот флажок может быть использован только в том случае, если параметр hwnd - окно верхнего уровня.
AW_HIDE Скрывает окно. По умолчанию, окно показывается на экран.
AW_CENTER Делает вид окна сжатым в точку, если используется флажок AW_HIDE или раскрытым из точки до полного размера, если флажок AW_HIDE не используется. Различные предписывающие флаги не имеют никакого действия.
AW_HOR_POSITIVE Анимирует окно слева направо. Этот флажок может быть использован с роликом или слайдом мультипликации. Он игнорируется, когда используется с флажком AW_CENTER или AW_BLEND.
AW_HOR_NEGATIVE Анимирует окно справа налево. Этот флажок может быть использован с роликом или слайдом мультипликации. Он игнорируется, когда используется с флажком AW_CENTER или AW_BLEND.
AW_VER_POSITIVE Анимирует окно сверху вниз. Этот флажок может быть использованы с роликом или слайдом мультипликации. Он игнорируется, когда используется с флажком AW_CENTER или AW_BLEND.
AW_VER_NEGATI VE Анимирует окно снизу вверх. Этот флажок может быть использован с роликом или слайдом мультипликации. Он игнорируется, когда используется с флажком AW_CENTER или AW_BLEND.

Вот пример использования, где заставка открывается с анимацией и потом закрывается, на форме есть таймер на 5 сек (5000).
Код :
   procedure Tzast.FormShow(Sender: TObject);
    begin
     AnimateWindow(Handle,1000,AW_BLEND); // Анимация окна в виде плавного проявления
    end;
    procedure Tzast.Timer1Timer(Sender: TObject);
    begin
     Close;
    end;
    procedure Tzast.FormHide(Sender: TObject);
    begin
     AnimateWindow(Handle,500,AW_BLEND or AW_HIDE); // Анимация окна в виде плавного ухода
    end;
    procedure Tzast.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
     Action:= caFree;
    end;
    procedure Tzast.FormCreate(Sender: TObject);
    var FormRgn: hRgn;
    begin
     FormRgn := CreateRoundRectRgn(5, 5, 492, 433, 200, 200); // Создали полигон в виде квадрата с закруглёнными углами
     SetWindowRgn(zast.Handle, FormRgn, TRUE); // Установили форму окну по полигону
    end;
В свойствах проекта главной формой назначена другая форма не эта, то есть просто форма заставки добавлена позже. В свойствах visible обоих форм ставим false. Этот код в главной форме.
Код :
   procedure Tzurnals.FormShow(Sender: TObject);
    begin
     zast.Left:= screen.Width div 2 - 250;
     zast.Top:= screen.Height div 2 - 220;
     zast.ShowModal;
    end;

Консультировал: Евгений/Genia007/ (Профессионал)
Дата отправки: 09.01.2016, 10:12

5
Спасибо!
-----
Дата оценки: 09.01.2016, 14:24

Рейтинг ответа:

НЕ одобряю +1 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное