Создание Splash-форм

Нередко при запуске Windows-приложений перед началом работы на экране появляется заставка (в англоязычной литературе она называется Splash screen или splash- форма), содержащая информацию о запускаемом приложении, логотип и некоторые другие сведения (серийный номер продукта, версия и пр.) и показывающая ход выполнения загрузки. При создании splash- форм используется несколько подходов. Рассмотрим один из них.

Пример 1. Создадим приложение, в котором перед появлением главного окна возникает заставка, состоящая из логотипа (картинки). Файл Логотип.jpg, содержащий изображение имеет размеры 256х256 (рис. 1.1). Создадим новый проект командой меню File/New/Application, и присвоим главной форме имя fmMain. Сохраним модуль формы fmMain под именем Main_un.pas, а сам проект — под именем Main.

Добавим в проект еще одну форму (это окно и будет заставкой) и присвоим ее свойствам значения согласно табл. 1.1.

Таблица 1.1. Свойства проектируемой splash- формы

Свойство Установленное значение Назначение изменения
Name fmSplash Новое имя формы
BorderStyle bsNone Форма без заголовка и границы
FormStyle fsStayOnTop Форма всегда размещается поверх других окон
ClientHeight 256 Клиентская высота формы
ClientWidth 256 Клиентская ширина формы
Position poDesktopCenter Форма размещается по центру экрана
Transparent Color true Указывает, что цвет, определенный в свойстве TransparentColorValue будет прозрачным
Transparent ColorValue clWhite Задаем прозрачность только белому цвету

Сохраним модуль формы fmSplash— под именем Splash_un.pas. В каталог с проектом поместим файл Логотип.jpg с изображением, которое будет являться логотипом программы.

Разместим на форме fmSplash компонент Image категории Additional, присвоим его свойству Align значение alClient (заполняет всю форму), свойству Proportional — значение true, свойству Center — значение true, в свойстве Picture укажем в качестве отображаемого файла файл Логотип.jpg.

Реализуем динамическое создание сплэш-формы перед созданием главной формы приложения. Для этого выполним команду меню Project/Options, в диалоговом окне Project Options выберем категорию параметров Forms, переместим форму fmSplash в список Available forms и нажмем кнопку ОК (этим действием мы переместим форму fmSplash из списка автоматически создаваемых форм в список доступных форм). Далее внесем изменения в содержимое файла проекта. Для этого выполним команду меню Project/View Source и добавим одну строку (добавленная строка выделена жирно в листинге) перед оператором создания главной формы:

program Main;

uses

Forms,

Main_un in 'Main_un.pas' {fmMain},

Splash_un in 'Splash_un.pas' {fmSplash};

{$R *.res}

begin

Application.Initialize;

fmSplash:= TfmSplash.Create(nil);

Application.CreateForm(TfmMain, fmMain);

Application.Run;

end.

Суть этой корректировки заключается в том, что автоматически загружаются в оперативную память только те формы, которые создаются в файле проекта с помощью метода Application.CreateForm. Таким образом, хотя сплэш-форма и создается в файле проекта первой, она не будет распознана как главная форма приложения, поскольку для ее создания используется метод ТForm.Create.

Добавим в модуль Main_un ссылку на модуль Splash_un (можно воспользоваться меню File/Use unit):

implementation

uses Splash_un;

Для того, чтобы сплэш-форма отображалась в момент создания главной формы, создадим обработчик события fmMain.OnCreate:

procedure TfmMain.FormCreate(Sender: TObject);

Begin

fmSplash.Show; //окно отображается немодальным

fmSplash.Repaint; //метод, заставляющий осуществить

//перерисовку формы

Sleep(5000); //задержка заставки на 5 сек

fmSplash.Hide; //метод, делающий форму невидимой

//можно было fmSplash.Close

fmSplash.Free; //освобождение памяти

end;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: