Тверской государственный университет
Опубликован: 13.09.2006 | Доступ: свободный | Студентов: 3490 / 369 | Оценка: 4.65 / 4.29 | Длительность: 30:37:00
Специальности: Программист, Менеджер
Лекция 14:

Проектирование интерфейса. Объекты диалоговых окон

Метод Scroll (Прокрутить)

Сдвигает полосу прокрутки в диалоговом окне, рамке или на странице (но не применяется к отдельному элементу вида полоса прокрутки и к полосе прокрутки в поле ввода). Вызов метода имеет вид:

объект. Scroll ([ActionX [,  ActionY]])

где объект - объект, в котором происходит прокрутка, параметр Action X задает действие в горизонтальном направлении, а ActionY - в вертикальном. Ниже перечислены возможные значения этих параметров и разъяснен их смысл.

  • fmScrollActionNoChange = 0 не сдвигать в данном направлении;
  • fmScrollActionLineUp = 1 выполнить небольшой сдвиг вверх на вертикальной полосе или небольшой сдвиг влево на горизонтальной полосе; движение эквивалентно нажатию клавиш-стрелок "вверх" и "влево";
  • fmScrollActionLineDown = 2 выполнить небольшой сдвиг вниз на вертикальной полосе или небольшой сдвиг вправо на горизонтальной полосе; движение эквивалентно нажатию клавиш-стрелок "вниз" и "вправо"
  • fmScrollActionPageUp = 3 сдвинуться на одну страницу вверх на вертикальной полосе прокрутки или на одну страницу влево на горизонтальной полосе прокрутки; движение эквивалентно нажатию клавиши PgUp для передвижения полосы прокрутки;
  • fmScrollActionPageDown = 4 сдвинуться на одну страницу вниз на вертикальной полосе прокрутки или на одну страницу вправо на горизонтальной полосе прокрутки; движение эквивалентно нажатию клавиши PgDn для передвижения полосы прокрутки;
  • fmScrollActionBegin = 5 сдвинуться на верхний край вертикальной полосы прокрутки или на левый край горизонтальной полосы прокрутки;
  • fmScrollActionEnd = 6 сдвинуться на нижний край вертикальной полосы прокрутки или на правый край горизонтальной полосы прокрутки.

Метод SetDefaultTabOrder (Установить стандартный порядок обхода)

Устанавливает для диалогового окна, рамки или страницы стандартный порядок обхода их элементов управления при нажатии клавиши Tab. Этот порядок соответствует обходу элементов слева направо и сверху вниз и совпадает с лексикографическим порядком на координатах левых верхних углов элементов <Left, Top>. Вызов метода имеет вид:

объект. SetDefaultTabOrder

где объект - объект, для которого устанавливается стандартный порядок.

Метод SetFocus (Установить фокус)

Устанавливает фокус на вызвавший этот метод элемент управления. При невозможности это сделать фокус остается на прежнем месте, и возбуждается ошибка. Вызов метода имеет вид:

объект. SetFocus

где объект - объект, который стремится попасть в фокус.

По умолчанию элемент управления, попавший в фокус в результате вызова метода SetFocus, автоматически не активизируется и не появляется поверх других закрывающих его объектов. Причина использования метода SetFocus в том, что доступ к некоторым свойствам элементов управления возможен лишь для объектов, находящихся в фокусе (например, для поля ввода это свойство LineCount, для списка - ListCount ).

Метод UndoAction (Отменить действие)

Отменяет последнее действие, выполненное в диалоговом окне, рамке или на странице. Подтверждающий возможность отмены действия признак - значение True свойства CanUndo. Если оно равно False, последнее действие, совершенное в диалоговом окне, отменить нельзя.

Вызов метода имеет вид:

Boolean = объект. UndoAction

где объект - объект, для которго отменяется последнее действие.

Типичные действия, которые можно отменять методом UndoAction и восстанавливать методом RedoAction, - ввод и выделение текста в поле ввода, выделение элемента в списке, установка значений флажков, переключателей и выключателей и т. п. А вот добавление элемента в список отмене не подлежит.

Реализация операций Undo и Redo в диалоговых окнах

Чуть ранее мы рассмотрели пример диалогового окна, в котором созданы аналоги стандартных кнопок Copy, Cut и Paste. Конечно же, во многих ситуациях полезно уметь создавать аналоги и других кнопок, к которым привыкли пользователи. Сейчас мы рассмотрим пример диалогового окна, в котором появятся кнопки Undo и Redo, позволяющие отменять или восстанавливать те или иные действия. Как мы уже говорили, не все действия пользователя при его работе в диалоговом окне могут быть отменены. Тем не менее, наличие таких кнопок упрощает его работу.

Рассмотрим в качестве примера диалоговое окно UndoAndRedo, где помещены поле ввода NewText, список ListBox1 и три командные кнопки CommandButton1, CommandButton2, CommandButton3. Обработчики события Click командных кнопок задают операции Undo, Add (Добавить элемент) и Redo. Текст, введенный в поле NewText, будет добавляться в качестве нового элемента в список ListBox1 при выборе кнопки Add, а выбор Undo и Redo должен приводить к отмене последнего действия или к восстановлению его результата. Если же отмена или восстановление не представляется возможной, то подается звуковой сигнал. Вот как выглядит диалоговое окно в процессе работы:

Диалоговое окно с кнопками Undo и Redo

Рис. 13. 14. Диалоговое окно с кнопками Undo и Redo

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

Private Sub CommandButton1_Click () 
	If UndoAndRedo. CanUndo = True Then          ' отмена возможна
		UndoAndRedo. UndoAction
	Else                                         ' отмена невозможна
		Beep
	End If

End Sub

Private Sub CommandButton2_Click () 
	If NewText. Text <> "" Then            ' вставка новой рубрики
		ListBox1. AddItem  (NewText. Text) 
	Else                                         ' текст не введен
		Beep
	End If
End Sub

Private Sub CommandButton3_Click () 
	If UndoAndRedo. CanRedo = True Then          ' восстановление возможно
		UndoAndRedo. RedoAction
	Else                                         ' восстановление невозможно
		Beep
	End If
End Sub

Private Sub UserForm_Initialize () 
	ListBox1. AddItem "черный"
	ListBox1. AddItem "белый"

End Sub
13.3.

Если в этом диалоговом окне ввести текст в поле ввода и выбрать кнопку Add, в списке появится элемент с текстом из поля ввода. При попытке отменить это действие раздастся звуковой сигнал. Зато если щелкнуть кнопку "Отменить" сразу после ввода текста, он исчезнет, но будет восстановлен после нажатия кнопки "Восстановить". Если производится подряд несколько действий, каждое из которых можно отменить и восстановить, система их запоминает и позволяет проводить несколько операций отмены и/или восстановления подряд. В нашем диалоговом окне можно отметить элемент в списке, затем ввести новый текст в поле ввода, а затем отметить другой элемент в списке. Выбор кнопок "Отменить" и "Восстановить" позволяет проследить, как отменяются и восстанавливаются эти действия.

Метод ZOrder (Z-упорядочить)

Помещает объект впереди или сзади всех других перекрывающихся с ним объектов на экране.

Вызов метода имеет вид:

объект. ZOrder ([zPosition])

где объект - объект, меняющий свое положение, zPosition - необязательный параметр, указывающий, впереди или сзади поместить объект. При значении zPosition, равном fmTop = 0, объект помещается впереди (это значение по умолчанию), а при значении fmBottom = 1 - сзади других перекрывающих его объектов.

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

полина есенкова
полина есенкова
Дмитрий Вологжин
Дмитрий Вологжин
Добрый день, прошел тесты с 1 по 9, 10 не сдал, стал читать лекцию и всё пройденные тесты с 1 по 9 сбросились, когда захотел пересдать 10 тест.