Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л 11.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
198.14 Кб
Скачать

Организация приложений

Создание многодокументных приложений (MDI). Вывод заставки. Вывод информационного окна. Запуск других приложений.

Создание простейших заставок

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

Добавим к нашему приложению форму, свойство BorderStyle ее установим равным bsNone, поместим на нее метку и компонент TTimer. Свойство Interval компонента TTimer установим равным 1000, умноженное на число секунд, в течение которых заставка должна находиться на экране (значение 3000 соответствует 3 секундам).

Рис. 1. Форма, которая должна появиться в качестве заставки

Создадим обработчик события OnTimer компонента TTimer: В случае Delphi он выглядит так:

procedure TForm3.Timer1Timer(Sender: TObject);

begin

Close;

end;

В опциях проекта перенесем вновь созданную форму в раздел Available Forms.

Теперь создадим обработчик события OnCreate главной формы приложения, который в случае Delphi выглядит так:

procedure TForm1.FormCreate(Sender: TObject);

begin

Form3:=TForm3.Create(Application);

Form3.ShowModal;

Form3.Free;

end;

Теперь перед запуском приложения на экране будет появляться заставка следующего вида:

Рис. 2. Заставка на этапе выполнения

Совет 2. Вывод информации о приложении на заставке

Если запустить какое-либо из приложений MS Office 97, на появляющейся при загрузке приложения заставке можно увидеть не только сведения о самом приложении, но также и регистрационный номер и фамилию пользователя. Как известно, эти сведения вводятся пользователем в процессе установки приложения, и в настоящее время принято хранить подобные сведения в реестре Windows. Если создать дистрибутив приложения с помощью наиболее часто используемого в нашей стране для этой цели средства InstallShield (или с помощью InstallShield Express, входящего в состав старших версий Delphi и C++Builder), в реестре Windows появится раздел, похожий на представленный на рис.3:

Рис. 3. Раздел реестра, создаваемый программой установки

В данном случае приложение MyApp версии 1.0 создано компанией Splash Screen Company, и при его установке были введены серийный номер 176-99027, а также имя пользователя и имя компании, в которой данный пользователь работает.

Если инсталляционное приложение создано не с помощью InstallShield, а с помощью иных средств (например, написано на Delphi), наименование раздела и ключей реестра могут отличаться от приведенных выше, но в любом случае они должны быть Вам известны.

Модифицируем нашу заставку так, чтобы на ней отображались содержащиеся в реестре имя пользователя и серийный номер. С этой целью добавим на созданную ранее форму две метки.

Рис. 4. Форма заставки после внесения изменений

Создадим обработчик события, связанный с созданием формы. В случае Delphi он имеет следующий вид:

procedure TForm2.FormCreate(Sender: TObject);

var key,ser,usr:string; Reg:TRegistry;

begin

try

Reg:=TRegistry.Create;

key:='SOFTWARE\Splash Screen Company\MyApp\1.0';

Reg.Rootkey:= HKEY_LOCAL_MACHINE;

Reg.OpenKey(key,false);

usr:=Reg.ReadString('Name');

ser:=Reg.ReadString('Serial');

Label2.Caption:='Пользователь: '+usr;

Label3.Caption:='Серийный номер: '+ser;

Reg.CloseKey;

Reg.Destroy;

except

Label2.Caption:='Unregistered user';

Label3.Caption:='Please register';

end;

end;

При этом в секции uses модуля, связанного с формой, следует сослаться на модуль registry.

В результате наша заставка на этапе выполнения в случае наличия в реестре соответствующего раздела приобретет следующий вид:

Рис. 5. Заставка с именем пользователя и серийным номером на этапе выполнения

Если же в реестре нет такого раздела, вместо имени пользователя и серийного номера будет выводиться сообщение о том, что пользователь не зарегистрирован.

Отметим, что при желании можно добавить в этот обработчик события код, анализирующий серийный номер и в случае, если он не удовлетворяет каким-либо заранее заданным требованиям, прекратить выполнение приложения (или запустить его демонстрационную версию).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]