Наверно,
каждый программист на Дельфи хоть раз
хотел создать к какой-нибудь своей
программе заставку. В этой статье мы
рассмотрим создание заставок в Дельфи.
Тому кто умеет работать более чем с
одной формой в приложении, будет очень
легко это понять. Чтобы не вдаваться в теорию,
начнем сразу с практики.
Откройте
какое-нибудь свое приложение, к
которому вы хотите добавить заставку,
или создайте новое (на чистом проще
разбираться). Теперь необходимо
добавить в наш проект еще одну форму,
которая будет заставкой. Для этого
нажмите File->New Form и Дельфи создаст вам
новую форму. Измените ее размеры как
вам хочется. Потом установите свойство
Border Style вашей формы в bsNone (у формы не
будет заголовка и системных кнопок),
установите свойство Visible в false. Свойтсво
Position должно быть poScreenCenter - это значит,
что форма появится по центру экрана. И
чтобы не перепутать эту форму ни с
какой другой задайте ей имя Logo
.
Настройка
формы заставки произведена, теперь
необходимо сделать, чтобы по щелчку
мышкой по этой форме или после нажатия
клавиши или по истечении 5 секунд форма-заставка закрывалась. Для этого
установите на форму Timer, его свойству
Interval задайте значение 5000 (форма будет
закрываться через 5 секунд). В
обработчик события OnTimer напишите всего
одно слово: Close;
В
обработчик события OnClick для формы-заставки
напишите тоже самое. Установите
свойство формы KeyPreview в true (это делается
для того, чтобы при нажатии любой
клавиши вначале реагировала форма, а
затем тот элемент, который был в фокусе
в момент нажатия). А в обработчик
события OnKeyPress (для формы-заставки
конечно же) опять-таки
напишите close;
Форма-заставка
готова полностью и теперь необходимо,
чтобы она запускалась перед главной
формой. Для этого сделайте активной
вашу главную форму, перейдите на
вкладку Events в Object Inspector'e и выберите
событие OnShow. В обработчике этого
события надо написать следующее:
logo.showmodal;
Меня
иногда спрашивают, чем отличаются
процедуры show и showmodal. У них только одно
принципиальное различие: если форма
открылась методом Showmodal, то пока она не
закроется пользователь не сможет
взаимодействовать с остальными
формами приложения. А если форма была
открыта методом Show, то пользователь
легко может перейти к любой форме
приложения.
Итак,
форма-заставка готова. Теперь мы слегка
ее усовершенствуем. Добавим такую же
штуку, как в формах-заставках Microsoft Office,
а именно на форме будет показываться
имя пользователя и организация. Для
этого разместите на форме-заставке две
метки (Label). Первую назовите UserName, а
вторую - Organization. Чтобы это сделать мы
воспользуемся реестром (тас вообще
очень много интересного можно найти). Теперь
откройте обработчик события OnCreate для
формы-заставки и объявите там
переменную R типа TRegistry, а в раздел Uses
всей программы добавьте Registry. Теперь
нам нужно создать объект R :
R:=TRegistry.Create;
R.RootKey:=HKEY_LOCAL_MACHINE;
R.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion', False);
//именно
здесь эта информация хранится
Теперь
необходимо прочитать нужные строки из
этого раздела реестра и присвоить их
соответствующим меткам:
UserName.Caption:=r.readstring('RegisteredOwner');
Organization.Caption:=r.readstring('RegisteredOrganization');
r.Free;
//надо уничтожить этот объект, так
как он нам больше не нужен
Таким
образом весь этот обработчик должен
иметь примерно такой вид:
procedure
TLogo.FormCreate(Sender: TObject);
var R:Tregistry;
begin
R:=TRegistry.Create;
R.RootKey:=HKEY_LOCAL_MACHINE;
R.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion', False);
UserName.Caption:=r.readstring('RegisteredOwner');
Organization.Caption:=r.readstring('RegisteredOrganization');
r.Free;
end;
Ну
вот собственно и все что я хотел вам
рассказать о заставках. Теперь ваши
программы будут выглядеть более
солидно. Но помните, что при создании
небольших, вспомогательных программ,
объем которых не превышает килобайт
100-150 заставки лучше не использовать.
(С) Автор статьи:
Михаил Христосенко // Development и Дельфи
(http://delphid.dax.ru).