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

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

CommandButton - командная кнопка

Командная кнопка запускает на выполнение действия системы, которые обычно задаются в процедуре обработки события Click (щелчок кнопки). Вот ее некоторые свойства.

  • Название кнопки - значение свойства Caption - можно установить при проектировании диалогового окна, а затем менять из программы.
  • Булево свойство Cancel определяет, является ли данная кнопка кнопкой отказа. Если свойство равно True, то нажать эту кнопку можно, щелкнув по ней мышью, либо нажав клавишу <Esc>, либо нажав клавишу <Enter> в тот момент, когда она находится в фокусе. По умолчанию задается False. Это свойство может быть установлено только для одной кнопки в окне (это отслеживается системой автоматически). Типичные действия, которые должны выполняться при выборе кнопки отказа, состоят в восстановлении состояний и значений элементов управления и связанных с ними данных, измененных пользователем во время работы в диалоговом окне. Их следует описать в процедуре обработки события Click для данной кнопки.
  • Булево свойство Default определяет, выбирается ли кнопка по умолчанию, если пользователь щелкает окно или нажимает клавишу Enter, когда фокус не находится на другой командной кнопке. По умолчанию свойству задается значение False.
  • Булево свойство TakeFocusOnClick определяет, переместится ли фокус на данную кнопку после выбора ее щелчком. Иногда для этого свойства удобно установить False, чтобы, щелкнув кнопку, выполнить действие над содержимым элемента, находящегося в фокусе.

События: BeforeDragOver, BeforeDropOrPaste, BeforeUpdate, Change, Click, DblClick, Enter, Error, Exit, KeyDown, KeyUp, KeyPress, MouseDown, MouseUp, MouseMove.

Методы: Move, SetFocus, Zorder.

Frame - рамка (группы)

Элемент управления Frame служит для явно видимого объединения в группу нескольких других элементов управления. Кнопки-переключатели (OptionButton), помещенные в рамку, автоматически являются взаимоисключающими, т. е. при выборе одной из них остальные сразу же отключаются (получают значение False ). Поведение других элементов, помещенных в рамку, не меняется.

Заголовок на верхней границе рамки задается свойством Caption. Как и для диалогового окна, для рамки можно задать рисунок, являющийся фоном (свойство Picture ), определить область прокрутки и вид полосы прокрутки (свойства ScrollLeft, ScrollTop, ScrollHeight, ScrollWidth, ScrollBars ). Свойство Zoom определяет коэффициент уменьшения или увеличения изображений всех элементов внутри рамки (измеряется в процентах и принимает значения от 10% до 400%).

События: AddControl, BeforeDragOver, BeforeDropOrPaste, Click, DblClick, Enter, Error, Exit, KeyDown, KeyUp, KeyPress, Layout, MouseDown, MouseUp, MouseMove, RemoveControl, Scroll, Zoom.

Методы: Copy, Cut, Move, Paste, RedoAction, Repaint, Scroll, SetDefaultTabOrder, UndoAction, ZOrder.

Image - изображение

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

Какой именно рисунок или графический образ показывается на экране, определяет свойство Picture. Его значением может быть изображение в одном из графических форматов:. bmp,. cur,.gif,. ico,. jpg и. wmf. Задать значение этого свойства можно при проектировании окна из списка свойств элемента Image. Для этого, щелкнув кнопку (…) в строке со свойством Picture, вызовите программу поиска и загрузки графических файлов, найдите файл с нужным изображением и выберите кнопку Open. Чтобы вывести или изменить изображение программно, используется функция LoadPicture. Например, следующий оператор выводит изображение автомобиля в элемент Image1:

Image1. Picture = LoadPicture ("c:\windows\car. bmp")

Свойство PictureSizeMode определяет масштабирование рисунка. Если его значение fmPictureSizeModeClip = 0, части рисунка, выходящие за рамку изображения, обрезаются, а при fmPictureSizeModeStretch = 1 рисунок масштабируется так, чтобы занимать всю площадь изображения. При этом может произойти искажение (относительное растяжение или сжатие) по горизонтали или вертикали. При значении fmPictureSizeModeZoom = 3 рисунок масштабируется с сохранением своих относительных размеров так, что, либо его высота, либо его ширина совпадают с высотой или шириной изображения на экране. Ниже показано влияние свойства PictureSizeMode на изображение.

Варианты масштабирования изображений

увеличить изображение
Рис. 13.3. Варианты масштабирования изображений

Расположение рисунка внутри рамки изображения задается свойством PictureAlignment. Возможные значения этого свойства перечислены в таблице.

Имя константы Значение Рисунок расположен
fmPictureAligmentTopLeft 0 в верхнем левом углу
fmPictureAlignmentTopRight 1 в верхнем правом углу
fmPictureAlignmentCenter 2 по центру
fmPictureAlignmentBottomLeft 3 в нижнем левом углу
fmPictureAlignmentBottomRight 4 в нижнем правом углу

Если значение свойства PictureSizeMode равно fmSizeModeStretch, рисунок занимает всю площадь изображения независимо от значения PictureAlignment. В частности, на рисунке 13. 3 свойство PictureAlignment для всех трех изображений имеет значение 0 ( fmPictureAligmentTopLeft ).

Если размер вставляемого рисунка меньше размера элемента, в который его помещают, всю поверхность изображения можно покрыть копиями рисунка. Для этого булеву свойству PictureTiling надо присвоить True (по умолчанию у него значение False ).

Каким образом располагаются копии рисунка на изображении, зависит от значений свойств PictureAlignment и PictureSizeMode. Например, если первое равно fmPictureAligmentTopLeft, первая копия рисунка разместится в левом верхнем углу, при fmPictureAlignmentCenter первая копия рисунка располагается в центре изображения, а от нее во все стороны распространяются остальные. Если свойство PictureSizeMode равно fmSizeModeStretch, все изображение занято одной копией рисунка, при fmPictureSizeModeZoom может появиться несколько копий, обрезанных по краям изображения. Ниже показано влияние этих параметров на покрытие изображения копиями рисунка автомобиля:

Влияние параметров PictureAlignment и PictureSizeMode

увеличить изображение
Рис. 13. 4. Влияние параметров PictureAlignment и PictureSizeMode

События: BeforeDragOver, BeforeDropOrPaste, Click, DblClick, Error, MouseDown, MouseUp, MouseMove.

Методы: Move, Zorder.

Label - метка (надпись, статический текст)

Один из самых простых элементов управления Label (метка) служит для вывода разного рода надписей в диалоговом окне. Часто эти надписи именуют или объясняют другие элементы окна. При работе программы текст метки может меняться. Основное свойство метки - Caption - содержит в качестве значения текст метки.

События: BeforeDragOver, BeforeDropOrPaste, Click, DblClick, Error, MouseDown, MouseUp, MouseMove.

Методы: Move, Zorder.

ListBox - список

Элемент управления ListBox выводит на экран окно со списком значений, позволяя пользователю выбрать из них одно или более. В варианте с выбором одного элемента ListBox ведет себя, как и описанный выше список в элементе ComboBox. Значение передается в свойстве Value, такую же роль играют свойства ColumnCount, ColumnWidth, ControlSource, RowSource, BoundColumn, List-Index, TextColumn и др. Главное отличие - способность обеспечить множественный выбор. Режим выбора определяется свойством MultiSelect, по умолчанию его значение fmMultiSelectSingle = 0, что соответствует выбору одного значения в списке. Значение fmMultiSelectMulti = 1 задает режим множественного выбора, при котором выбор и отмена выбора элемента осуществляются щелчком мышью или нажатием клавиши "пробел". Значение fmMulti-SelectExtended = 2 задает режим, при котором выбор осуществляется щелчком или нажатием клавиши Shift, а расширить область выделенных элементов можно, используя клавиши-стрелки при нажатой клавише Shift.

В случае множественного выбора значение свойства Value всегда - Null, а получение информации о выбранных пользователем элементах обеспечивает булево свойство Selected (выбран), которое по номеру элемента списка определяет, выбран он ( True ) или нет ( False ). Обращение к нему имеет вид:

объект. Selected (индекс),

где индекс - целое в интервале от 0 до ListCount - 1. Например, если в списке ListBox1 пять элементов, то следующий цикл перенесет выбранные пользователем элементы в столбец "A" рабочего листа "Лист1" в Excel.

For i = 0 To 4
	If ListBox1. Selected (i)  = True Then
		Worksheets ("Лист1"). Cells (i+1,  1)  = ListBox1. List (i) 
End If
Next I

Свойство Selected используется также для выбора или отмены выбора элементов из программы.

События: AfterUpdate, BeforeDragOver, BeforeDropOrPaste, BeforeUpdate, Change, Click, DblClick, DropButtonClick, Enter, Error, Exit, KeyDown, KeyUp, KeyPress, MouseDown, MouseUp, MouseMove.

Методы: AddItem, Clear, Move, RemoveItem, SetFocus, ZOrder.

MultiPage - набор страниц

Элемент управления MultiPage объединяет несколько независимых диалоговых окон - страниц (вкладок). Заголовки страниц обычно видны на одной из сторон элемента на их закладках, а переход на страницу происходит после щелчка по ее закладке. Этот простой переход с одной страницы на другую и делает MultiPage удобным средством для представления разнородных данных, относящихся к одному объекту. Такие данные в "бумажных" офисах хранятся обычно в отдельных папках и образуют дела, досье и т. п.

Каждая страница из MultiPage - это объект типа Page, а все они включены в коллекцию Pages (страницы). При создании элемента MultiPage в него автоматически помещаются две страницы с именами Page1 и Page2. Имена можно изменять, можно добавлять и новые страницы. Чтобы на стадии проектирования добавить новую страницу, переименовать, передвинуть или удалить имеющуюся, щелкните правой кнопкой мыши полосу закладок и выберите нужное действие в появившемся контекстном меню. Рассмотрим основные свойства набора страниц.

  • Количество страниц возвращается свойством Count.
  • Свойство Value для элемента MultiPage определяет номер текущей активной страницы в коллекции Pages.
  • Свойство SelectedItem (его можно только читать) возвращает текущую активную страницу (как объект). Его можно использовать для считывания и установки свойств этой страницы и входящих в нее элементов управления.
  • Свойство Style определяет, в каком виде представляются заголовки страниц. По умолчанию оно равно fmTabStyleTabs=0 и задает представление заголовков в виде закладок в полосе заголовков. Каждая закладка с заголовком находится внутри границ своей страницы. Если значение fmTabStyleButtons = 1, заголовок каждой страницы находится на отдельной кнопке, расположенной в полосе заголовков. Переход на страницу происходит после выбора кнопки с ее заголовком. Если же значение fmTabStyleNone = 2, полоса с заголовками страниц на экран не выводится.
  • Свойство TabOrientation задает расположение полосы с заголовками страниц. Его значения описаны в следующей таблице.
    Константа Значение Заголовки расположены
    fmTabOrientationTop 0 наверху
    fmTabOrientationBottom 1 внизу
    fmTabOrientationLeft 2 на левой стороне
    fmTabOrientationRight 3 на правой стороне
  • Булево свойство MultiRow позволяет включить возможность создания нескольких полос с закладками (по умолчанию его значение равно False, что соответствует одной полосе закладок).
  • Свойства TabFixedHeight и TabFixedWidth устанавливают или возвращают высоту и ширину закладки (в точках). При значении 0 ширина закладок устанавливается автоматически так, чтобы в каждой закладке помещалось ее название и оно занимало всю ширину элемента. При значениях > 0 у всех закладок одинаковые размеры, заданные свойством TabFixedWidth. Минимально возможный размер закладки - 4 точки.

Рассмотрим пример, демонстрирующий разные способы доступа к страницам набора. Допустим, в наборе страниц MyPages есть страницы: Page1, Page2, Page3 и Page4, созданные и размещенные в указанном порядке.

Private Sub UserForm_Initialize () 
'Использование индекса  (числового или строкового)  и коллекции Pages
	MyPages. Pages (0). Caption = " Страница 1 "
	MyPages. Pages. Item (1). Caption = " Страница 2 "
		'Использование объекта Page без ссылки на коллекцию Pages:
	MyPages. Page3. Caption= " Страница 3 "
		'Использование свойства SelectedItem:
	MyPages. Value = 3
	MyPages. SelectedItem. Caption = " Страница 4 "
End Sub

События: AddControl, BeforeDragOver, BeforeDropOrPaste, Change, Click, DblClick, Enter, Error, Exit, KeyDown, KeyUp, KeyPress, Layout, MouseDown, MouseUp, MouseMove, RemoveControl, Scroll, Zoom.

Методы: Move, SetFocus, ZOrder.

OptionButton - кнопка-переключатель

Кнопка-переключатель (радио - кнопка или просто переключатель), как и флажок, показывает, выбран ли элемент. Отличие в том, что из нескольких переключателей, объединенных в группу, выбран может быть только один. Объединять переключатели в группу можно двумя способами. Первый: сначала создается элемент Frame - рамка группы, затем в этой рамке размещают переключатели, образующие группу. Они автоматически становятся взаимоисключающими. Другой способ - присвоив группе имя, установить его как значение свойства GroupName для всех переключателей этой группы. У каждого способа свои плюсы и минусы. В первом случае рамка вокруг переключателей помогает пользователю зрительно идентифицировать группу, но она занимает дополнительную площадь в окне (а ведь может потребоваться разместить несколько групп переключателей!), да и рамка перекрывает фон окна. Второй вариант гибче: кнопки одной группы могут размещаться в окне произвольным способом, но сложнее обеспечить ясное выделение каждой группы кнопок.

Перемещение по кнопкам одной группы осуществляется с помощью клавиш-стрелок, при этом фокус перемещается только по элементам данной группы, даже если при обходе с помощью клавиши Tab между кнопками группы включены другие элементы управления. Выбор переключателя, находящегося в фокусе, происходит при нажатии клавиши "пробел" или при щелчке любого переключателя группы - его свойство Value получает значение True, а для всех остальных переключателей группы устанавливается значение False.

События: AfterUpdate, BeforeDragOver, BeforeDropOrPaste, Change, Click, DblClick, Enter, Error, Exit, KeyDown, KeyUp, KeyPress, MouseDown, MouseUp, MouseMove.

Методы: Move, SetFocus, ZOrder.

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