На этом шаге мы рассмотрим сновные моменты создания приложения с заставкой.
При создании приложений довольно часто принято перед началом его работы создавать заставки с пояснительным текстом: какие функции выполняет приложение, кто является его автором.
При многократном использовании приложения появление подобной заставки может начать действовать на пользователя, как красная тряпка на быка, поэтому, чтобы не злоупотреблять терпением и временем пользователя в подобных случаях, необходимо предусмотреть режим отказа от вывода заставки при активизации документа. Естественно, программа должна хранить где-то информацию о режиме работы: с заставкой или без нее. Эту и подобную информацию об установках режимов работы приложения обычно хранят в создаваемых дополнительно ini-файлах.
Рассмотрим простейший пример создания заставки приложения (рисунок 1).
Рис.1. Пример заставки приложения
На стандартном листе модуля наберите приведенную ниже процедуру, которая позволит запустить диалоговое окно заставки. В области описания переменных уровня модуля описывается пользовательский тип, используемый при записи информации о режиме работы приложения в файл Файл.INI.
' Переменные уровня приложения Type ФАЙЛ_INI Информация As String * 30 Код As Boolean End Type Public Заставка As ФАЙЛ_INI Sub ПоказатьЗаставку() With UserForm1 .Picture = LoadPicture("j:\site\Works\pr226_1\miit.bmp") .PictureAlignment = fmPictureAlignmentCenter .PictureSizeMode = fmPictureSizeModeZoom .Caption = "Пример заставки" .BorderColor = vbBlue .BorderStyle = fmBorderStyleSingle .CheckBox1.BackColor = vbWhite .Show End With End Sub
На листе модуля UserForm1 наберите следующую процедуру, которая при закрытии заставки позволит считать из флажка Не отображать выбранный пользователем режим работы для следующего открытия приложения.
Private Sub UserForm_Terminate() Open "j:\site\Works\pr226_1\Файл.INI" For Random As #1 Len = Len(Заставка) With Заставка .Информация = "Отображать заставку:" If CheckBox1.Value = False Then .Код = False End If If CheckBox1.Value = True Then .Код = True End If End With Put #1, 1, Заставка Close #1 End Sub
На листе модуля ЭтаКнига (ThisWorkbook) наберите следующую процедуру, которая при открытии рабочей книги в зависимости от указанного в файле Файл.INI режима либо будет отображать заставку, либо нет.
Private Sub Workbook_Open() Open "j:\site\Works\pr226_1\Файл.INI" For Random As #1 Len = Len(Заставка) Get #1, 1, Заставка Close #1 If Заставка.Код = False Then ПоказатьЗаставку End Sub
Со следующего шага мы начнем рассматривать создание более сложных приложений.