Уроки по Delphi


Часть урока для продвинутых программистов


Но эта часть урока никак нельзя назвать уроком для продвинутых программистов, речь в нем пойдет об известном многим окне-заставке, которое появляется при загрузке большинства программ. Может кому-то и пригодится.

Итак, зачем же это окно все-таки нужно? Допустим, вы пишите относительно большую программу, и соответственно ее процесс загрузки занимает весьма продолжительное время, в течениии которого пользователь на экране монитора ничего не видит. Сидит и думает, а запустил ли я эту программу или нет, и пробует снова. Это первая причина. Ну, а остальные - это возможность приукрасить внешний вид, придать солидность, марку фирмы (профессиональности) изготовителя.

Что же в себе содержит окно-заставка? Да все, что угодно. От бесполезной информации, до названия программы, версии продукта, лицензии и контактного телефона. Лучше всего все это дело организовать в прямоугольный рисунок с максимальным размером 640х480 (минимальное экранное разрешение).Такой пример вы видите выше.И этот рисунок надо разместить в отдельной форме.

Рассмотрим пример. Ваша программа имеет название PROJECT1, главное окно проекта называется FORM1, окно с заставкой FORM2.

У окна Form2 устанавливаем свойства Position в poScreenCenter (располагать это окно посередине экрана), свойство BorderStyle в bsNone (окно без заголовка). Дальше размещаем в этом окне компонент TImage. Загружаем в него изображение через свойство Picture и устанавливаем свойство для рисунка и окна AutoSize в true. Все, рисунок имеет размер всего окна, а размер окна автоматически подстраивается под размер рисунка.

Дальше открываем файл проекта DPR на редактирование из меню "Project" пунктом "View Source".

Там мы видим следующие строки:

Application.Initialize; // инициализация приложения

Application.CreateForm(TForm1, Form1); // создать главное окно

Application.CreateForm(TForm2, Form2); // создать окно-заставку

// дальше могут быть создано много окон в приложении

Application.Run; // запустить приложение






Нам необходимо создать и отображать окно- заставку еще до создания главного окна в памяти и продолжать ее отображение по появления главного окна. Но необходимо обмануть приложение, ведь главным окном является то, что было создано первым.

Вот пример:

Application.Initialize; // инициализация приложения

Form2 := TForm2.Create(Application); // создать окно-заставку

Form2.Show; // сделать окно видимым

Form2.Update; // перерисовать окно

//(поскольку приложение еще не запущено, это необходимо делать вручную)

Application.CreateForm(TForm1, Form1); // создать главное окно

// дальше создаются все остальные окна в вашей программе

Form2.Close; // закрыть окно-заставку

Application.Run; // запуск приложения

Если у вас программа изначально такая же маленькая, как эта, то окошко заставки мигнет и пользователь ничего не успеет прочитать. Кроме того, в наш век все постоянно увеличивающихся компьютерных скоростей самая навороченная программа может лет так через 10 запускаться за несколько секунд, что тоже может создать некоторое неудобство для программиста.

Для этого делаем так.

Во-первых, убираем строку Form2.Close; из файла проекта. Дальше устанавливаем свойство FormStyle окна Form2 в fsStayOnTop (окно будет всегда отображаться поверх всех, что позволит пользователю любоваться им даже после появления главного окна). Устанавливаем в окно Form2 компонент TTimer. Устанавливаем свойство Interval в минимальный промежуток видимости этого окна. Например 3000 - 3 секунды. Событие срабатывания таймера:


Содержание раздела