Создание заставок для ваших программ
Наверно, каждый программист на Дельфи хоть раз хотел создать к какой-нибудь своей программе заставку. В этой статье мы рассмотрим создание заставок в Дельфи. Тому кто умеет работать более чем с одной формой в приложении, будет очень легко это понять. Чтобы не вдаваться в теорию, начнем сразу с практики.
Откройте
какое-нибудь свое приложение, к
которому вы хотите добавить заставку,
или создайте новое (на чистом проще
разбираться). Теперь необходимо
добавить в наш проект еще одну форму,
которая будет заставкой. Для этого
нажмите 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 заставки лучше не использовать.
Удачи в программировании...
