Створення splash-заставки

Думаю багато хто знає, що таке 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;

Якщо ви вловили ідею, то зможете перетворити з заставки справжній SysInfo :). Наступний спосіб повинен вразити користувача більше, ніж попередній. При активації форма буде плавно з'являтися і зникати. Я вже писав статтю 'Анімація без зайвих зусиль', там розповідається про анімації вікон стандартними winapi функціями і анімації шляхом маніпулювання властивостями форми. Прочитайте обьязательно! В тій статті були описані властивості форми AlphaBlend і AlphaBlendValue. Маніпулюючи з ними в звичайному циклі можна досягти дуже непоганих результатів. Якщо ви прочитаєте ту статтю, то ваша заставка може вразити навіть досвідченого користувача. Я не буду пхати в цю статтю матеріал, викладений в іншій статті, але додам, що якщо ви хочете, що б заставка при закритті також плавно зникала, то підставте в циклі замість слова to слово downto і поміняйте місцями початкові і кінцеві значення (100 і 255 в прикладі статті).

Хочу сказати, що не потрібно боятися експериментувати, і в цих експерементів втратити дорогоцінний час, адже саме в подібних експерементів народжуються приголомшливі результати. До того ж мета цієї статті дати не готові приклади для використання, а дати їжу для мізків, наштовхнути програміста на цікаві факти. Уявіть, що ви на уроці хімії: змішуйте приклади, додавайте що ні будь своє, виправляйте і будьте впевнені, що ви не будете шкодувати про витрачений час.

Всі матеріали в розділі "Інформатика і програмування"

Схожі статті