Опубликован: 13.09.2006 | Уровень: для всех | Доступ: свободно | ВУЗ: Тверской государственный университет
Лекция 7:

Организация диалога. Объект Assistant

< Лекция 6 || Лекция 7: 12345 || Лекция 8 >
Методы объекта Assistant

В Office 2000 не произошло изменений в методах объекта Assistant. Он по-прежнему имеет следующие методы: StartWizard, ActivateWizard, EndWizard, Help, Move и ResetTips. Методы этого объекта используются реже, чем свойства и я ограничусь их кратким описанием.

Методы StartWizard, ActivateWizard, EndWizard применяются при создании пользовательских Мастеров. Первым должен быть запущен метод StartWizard, возвращающий идентификатор (длинное целое) Помощника. Этот идентификатор затем используется в методах ActivateWizard и EndWizard, соответственно активизирующих и деактивирующих Помощника.

Метод Help выводит стандартное сообщение Помощника справочной системы Office 2000 с заголовком "What would you like to do?"

Метод Move перемещает Помощника в указанную параметрами left и top позицию на экране

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

В заключение рассказа о свойствах и методах объекта Assistant приведем пример, в котором поменяем образ объекта Assistant и некоторые его свойства:

Public Sub ChooseAss()
With Assistant
	Debug.Print .FileName
	'Задаем образ Помощника
		'.FileName = "dot.acs"
		.FileName = "Offcat.acs"
		'.FileName = "Rocky.acs"
		
	'Его анимационное поведение
		.Animation = msoAnimationGreeting
		.Animation = msoAnimationGetAttentionMinor
	'Другие свойства
		.AssistWithHelp = True
		.FeatureTips = True
		.GuessHelp = True
		.HighPriorityTips = True
		.Visible = True
	End With
End Sub
Листинг 7.1.

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

"Мурка" в роли Помощника (объекта Assistant)

увеличить изображение
Рис. 7.2. "Мурка" в роли Помощника (объекта Assistant)

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

Объект Balloon

Можно изменить свойства объекта Assistant, но в каждый момент существует только один такой объект. C ним можно связать произвольное число объектов Balloon, которые я называю баллончиками. Поясним происхождение термина. Реплики рисованных персонажей комиксов или карикатур художники нередко помещают в кружок - "баллончик", выдуваемый изо рта.

У объекта Assistant нет коллекции объектов Balloon (а жаль), но можно создать необходимое число переменных этого класса или массив из таких объектов. Вот пример:

Public Sub Balls()
	Dim i As Integer
	'Создание объектов Balloons
		Dim FirstBall As Balloon, LastBall As Balloon
		Dim ArrOfBall(3) As Balloon
	With Assistant
		.FileName = "OffCat.acs"
		Set FirstBall = .NewBalloon
		FirstBall.Show
		.FileName = "Rocky.acs"
		Set LastBall = .NewBalloon
		LastBall.Show
		For i = 1 To 3
			Set ArrOfBall(i) = .NewBalloon
			ArrOfBall(i).Show
		Next i
		FirstBall.Show
	End With
End Sub

Здесь созданы две переменные и массив из трех элементов класса Balloon. По ходу дела внешний вид объекта Assistant меняется, но все баллончики одинаковы, в момент рождения они пусты и имеют единственную кнопку "ОК". Рассмотрим, как можно наполнить содержанием эти объекты и задать их свойства.

Модальные и немодальные баллончики

Объекты Balloon предназначены для ведения диалога с пользователем и фактически являются специальным видом диалоговых окон. Любое диалоговое окно, а значит и объект Balloon может быть модальным и немодальным. Из модальных окон нельзя выйти, не закончив диалог. Обычно, для этого нужно щелкнуть одну из кнопок этого окна - Ok или Cancel. В модальном объекте Balloon эти кнопки, как правило, присутствуют, но их наличие не является обязательным. Если щелкнуть любую кнопку в модальном окне, то диалог оканчивается и окно закрывается. До тех пор, пока модальное окно не будет закрыто, нельзя начать работать с другим окном. Немодальные окна можно покидать, в этот момент они перестают быть активными, но остаются на экране и не закрываются. При необходимости в них можно вернуться и продолжить работу с ними. Позже мы рассмотрим механизм закрытия немодальных окон и специальный механизм CallBack функций, позволяющий организовать реакцию на выбор, сделанный пользователем в немодальном окне.

Объект Balloon имеет свойство Mode с тремя возможными значениями:

  • MsoModeModal - в этом случае диалог с объектом Balloon является модальным. Его обычно используют для вывода предупреждений, требующих особого внимания или получения ответа от пользователя, без которого дальнейшая работа не может быть продолжена.
  • MsoModeModeless - в этом случае окно становится немодальным и оно может оставаться открытым, в то время как продолжается работа над приложением в других его окнах. Такие объекты удобны, например, при выдаче справочной информации, которая должна быть все время под рукой.
  • MsoModeAutoDown - задает специальный вид модального окна, в котором не обязательны кнопки. Окно закрывается автоматически, как только пользователь введет символ с клавиатуры или щелкнет кнопку мыши, где - либо вне модального окна. Такие окна полезны при выводе сообщений, не носящих критический характер, например советов.
Терминальные свойства объекта Balloon

С двумя свойствами этого объекта: Animation и Mode мы уже знакомы. Первое из них задает анимацию объекта Assistant при вызове его метода Show, в тот момент, когда показывается объект Balloon. Рассмотрим подробнее другие свойства

  • Heading - позволяет прочесть или установить строку, задающую текст заголовка.
  • Text - На вершине объекта Balloon сразу после заголовка может появляться некоторый текст. Его и устанавливает свойство Text. Оба элемента являются необязательными. Заметьте, что Heading и Text могут включать и графику. Последняя задается строкой, имеющей следующий синтаксис: {<type> <location> [<factor>]}. Первый параметр задает тип графического файла (bmp или wmf), второй - его расположение, третий позволяет согласовать размер wmf-файла (Windows metafile), но не bmp-файла.
  • Icon - Слева от заголовка можно добавить специальный значок для привлечения внимания. Возможные значки задаются следующими константами: msoIconAlert, msoIconNone, или msoIconTip.
  • Button - Внутрь баллончика можно поместить некоторое количество кнопок заранее предустановленного типа. К ним, конечно, относятся кнопки: Ok, Cancel, Next, Close, Retry и им подобные. Значениями свойства могут быть константы, задающие соответствующее подмножество кнопок.

Это не все свойства объекта Balloon. Есть еще несколько важных для понимания свойств, но мы расскажем о них чуть позднее. А сейчас небольшой пример конструирования объекта Balloon с некоторыми из рассмотренных свойств:

Public Sub OneBall()
	Dim Text1 As String, Text2 As String, Text3 As String
	Dim Text4 As String, Text5 As String
	Dim myPath As String
	myPath = ActiveDocument.Path
	'Формирование свойства Text
		Text1 = "Хочешь знать, как перевезти с берега на берег"
    'Вставка графики в середину текста
		Text2 ="{wmf " & myPath & "\wolf.wmf}"; & " Волка," & vbCrLf
		Text3 = "{wmf " & myPath & "\goat.wmf}" & " Козу" & "	И "
		Text4 = "{wmf " & myPath & "\cabbage.wmf}" & " Капусту" & vbCrLf & vbCrLf
		Text5 = "Соблюдая 3 правила?"
	Dim FirstBall As Balloon
	Set FirstBall = Assistant.NewBalloon
	With FirstBall
		.Heading = "Волк, Коза и Капуста"
		.Icon = msoIconAlert
		.Text = Text1 & Text2 & Text3 & Text4 & Text5
		.Button = msoButtonSetYesNo
		.Show
	End With
End Sub
Листинг 7.3.

Вот как выглядит это диалоговое окно баллончика с картинками, вставленными в текст:

Объект Balloon с заданными свойствами

увеличить изображение
Рис. 7.3. Объект Balloon с заданными свойствами

Заметьте, следует быть внимательным при задании свойства Text, включающего картинки. При наличии ошибок диалоговое окно не будет открыто, но сообщений об ошибке не появится.

< Лекция 6 || Лекция 7: 12345 || Лекция 8 >
Андрей Гуменюк
Андрей Гуменюк
Молдова