Создание splash-заставки
Brutus
Думаю
многие знают, что такое splash-картинка, но все же поясню: это картинка,
которая предшествует запуску основной программы и обычно отображается во время
загрузки программы, что бы пользователю было не так скучно ждать, пока
загрузится программа. Подобную splash-картинку можно наблюдать во время запуска
Delphi, TheBat!, Dreamveawer и др. Сейчас мы займемся созданием красивой
splash-заставки для вашей программы.
Зачем?
Как
я уже говорил, заставка может скрасить ожидание запуска программы. К тому же на
заставке можно показывать какие ни будь полезные данные или информацию о
степени загрузки программы. Да и это просто красиво. Так же обращю ваше
внимание, что заставка должна хорошо выглядеть, поскольку именно она оставляет
первое впечатление о программе (надеюсь все знают силу первого впечатления,
которое потом тяжело изменить). Так же нужно дать пользователю отключать
заставку в настройках, поскольку заставка может просто не понравиться или
раздражать пользователя, и он удалит программу только из-за злополучной
заставки.
Как?
Очень
просто. Нужно найти подходящюю картинку, разместить необходимые компоненты
(если вы хотите что ни будь отображать на заставке) на форме и написать
несколько строк кода.
Итак,
приступим. Создайте новую форму и расположите на ней картинки и компоненты. Эта
форма и будет отображаться во время загрузки программы. Допустим эта форма
называется Form2. Рекомендую её свойство BorderStyle установить в bsNone - в
этом режиме заголовок окна не будет отображаться, к тому же нельзя будет
изменить размер окна. Так же рекомендую изменить свойство этой формы Position и
установить как poScreenCenter - в этом случае окно появится в центре экрана.
Далее в событии главной формы (обычно Form1) onShow пропишите Form2.ShowModal.
Это откроет окно Form2 в модальном режиме. Теперь нужно сделать так, что бы
заставка закрылась. Это можно сделать, добавив на форму заставки таймер,
который закроет программу, или же добавив код закрытия заставки после
инициализационных действий в главной форме, загрузки параметров и т.п.
Теперь
давайте попробуем как ни будь удивить пользователя. Самый простейший способ,
это показать некоторые данные о компьютере в заставке. Расположите несколько
label'ов на форме-заставке или прямо на картинке (в этом случае нужно
установить свойство Label.Transparent := true). Следующий код записывает в
Label1 информацию о пользователе, на которого зарегистрирована ОС. Этот код
нужно расположит в обработчике события OnCreate формы-заставки, так же не
забудьте поместить модуль TRegistry в раздел Uses все той же формы-заставки:
var Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('SOFTWAREMicrosoftWindowsCurrentVersion',
False);
Label1.Caption:=Reg.ReadString('RegisteredOwner');
Reg.CloseKey;
Reg.Free;
end;
Если
вы уловили идею, то сможете превратить из заставки настоящюю SysInfo :).
Следующий способ должен впечатлить пользователя больше, чем предыдущий. При
активации форма будет плавно появляться и исчезать. Я уже писал статью
'Анимация без лишних усилий', там рассказывается об анимации окон стандартными
winapi функциями и анимации путем манипулирования свойствами формы. Прочитайте
обьязательно! В той статье были описаны свойства формы AlphaBlend и
AlphaBlendValue. Манипулируя с ними в обыкновенном цикле можно достичь очень
неплохих результатов. Если вы прочтете ту статью, то ваша заставка может
впечатлить даже искушенного пользователя. Я не буду пихать в эту статью материал,
изложенный в другой статье, но добавлю, что если вы хотите, что бы заставка при
закрытии также плавно исчезала, то подставьте в цикле вместо слова to слово
downto и поменяйте местами начальные и конечные значения (100 и 255 в примере
статьи).
Вместо
заключения
Хочу
сказать, что не нужно бояться эксперементировать, и в этих эксперементах
потерять драгоценное время, ведь именно в подобных эксперементах рождаются
потрясающие результаты. К тому же цель этой статьи дать не готовые примеры для
использования, а дать пищу для мозгов, натолкнуть программиста на интересные
факты. Представьте, что вы на уроке химии: смешивайте примеры, добавляйте что
ни будь свое, исправляйте и будьте уверены, что вы не будете жалеть о
потраченном времени.
Список литературы
Для
подготовки данной работы были использованы материалы с сайта http://www.soch.imperium.by