Экранная форма. Продолжение знакомства

Раскрывающийся список (ComboBox)

Этот элемент мы уже видели в главном окне Visual FoxPro, именно в нем отображается открытая база данных. Данный элемент управления часто применяется в экранных формах, и, естественно, мы никак не можем обратить внимание на сей объект.

Можно сказать, что ComboBox является более “продвинутым” братом-близнецом объекта ListBox — так много у них общего.

Данный объект, как и обычный список, имеет собственный построитель (Builder) для определения и редактирования источника данных и других свойств. Использование построителя для раскрывающегося списка практически идентично использованию построителя для обычного списка, поэтому мы не будем на нем останавливаться. Вместо этого мы определим свойства данного элемента управления с помощью окна Properties (Свойства).

Давай откроем форму, на которой у нас размещен ListBox, выделим его и удалим, нажав клавишу <Delete>. Вместо него поместим на форму элемент управления в виде раскрывающегося списка.

В окне Properties перейдем на вкладку Data для определения типа источника данных. Значения свойства RowSourceType точно такие же, как и объекта ListBox. Так как мы используем в качестве источника данных значение поля таблицы, нам необходимо установить значение 6. В раскрывающемся списке для свойства RowSource укажем поле нашей таблицы, то же самое установим и для свойства controisource (Источник данных).

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

Запустим форму на выполнение.

Видишь, нам даже не пришлось изменять код для события Keypress для поля ввода новых значений. Это наглядно демонстрирует сходство между ComboBox и ListBox.

Теперь рассмотрим тот случай, когда в качестве источника данных выступает не таблица, а список значений. Уберем таблицу из среды данных (Data Environment) нашей формы. Свойство RowSourseType определим равным i (Value, Значение). Свойство Controisourse примем равным None (Нет). А вот в RowSourse занесем через запятую список значений.

Переключатели (OptionGroup)

Эти элементы называются переключателями, потому что они могут принимать только одно из нескольких значений поля или переменной. То есть когда один из них включен, другие, входящие в эту группу переключателей, выключены. Их еще иногда называют радиокнопками — раньше на старых радиоприемниках применялись подобные устройства, правда, механические. Объект OptionGroup является контейнером, т.е. состоит из нескольких элементов, обладающих определенными свойствами.

Создадим новую экранную форму и разместим на ней элемент управления OptionGroup, воспользовавшись соответствующей кнопкой на панели Form Controls.

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

Счетчик Number of buttons определяет количество элементов в группе переключателей.
Переключатели Standard и Graphical позволяют определить “внешний вид” элементов. Standard (Стандартный) — обычный для этого объекта вид, Graphical (Графический) — элементы отображаются в виде кнопок.

В расположенной ниже таблице можно определить надпись для каждого элемента (Caption) и, если нужно, изображение (Graphic).

Теперь перейдем на вторую вкладку окна Option Group Builder — Layout(Расположение), которая позволяет задать параметры отображения объектов:

• Button layout (Vertical, Horizontal) — отвечает за расположение элементов в группе: вертикально (по умолчанию) или горизонтально;
• Spacing between buttons (in pixels) — определяет расстояние между элементами в пикселях;
• Border style (Single, None) — определяет, будет ли группа переключателей иметь обрамление в виде одинарной линии (Single) или вообще обрамления не будет.

На последней, третьей вкладке Value (Значение) можно определить таблицу и поле, в которое будут заноситься значения элементов. В окне свойств Properties за это отвечает свойство controisource (Источник данных).

Контейнер (Container)

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

Данный объект очень широко используется при создании классов — на его основе можно соорудить такие элементы, как группа командных кнопок, progressBar (Индикатор) и многое другое. В экранных формах он также частенько применяется, например.

Свойство speciaiEffect у первого равно 2 (Плоский), у второго — 1 (Утопленный), у третьего — о (Выпуклый).

Счетчик (Spinner)

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

Поместив объект на форме, открываем окно Properties (Свойства) и начинаем творить:

1. Используя уже знакомое нам свойство controisource (Источник данных) определяем поле, для которого, собственно, и нужен счетчик. Смотри, поставь поле Character!

2. Теперь необходимо задать максимальное и минимальное значения для счетчика — соответственно свойства SpinnerHighValue И SpinnerMinValue.

3. В предыдущем пункте мы определили максимальное и минимальное допустимые значения, которые вводятся с использованием стрелок счетчика. Но значения можно вводить и с клавиатуры, поэтому для такого случая определим дополнительно значения следующих свойств — KeyboardHighValue И KeyboardMinValue.

4. Определим шаг, с которым изменяется значение поля, воспользовавшись свойством Increment. Но счетчик, кстати, можно использовать и для других целей. Например, пользователь не может изменить размер кнопок, а ему это ну очень надо!

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

THISFORM.Commandl.WIDTH=THIS.VALUE
THISFORM.Commandl.REFRESH()

Вот и пусть изменяет…
Пошутили, расслабились — поехали дальше!

Группа вкладок (PageFrame)

Вкладки используются в основном тогда, когда на форме предполагается разместить большое количество объектов и каким-то образом их сгруппировать.

Создадим новую форму, которая будет входить в состав нашего приложения, и разместим на ней три вкладки. Вкладки располагают на форме следующим образом: выбирается соответствующая кнопка на панели Form Controls, затем мышью обводится контур необходимого размера. По умолчанию при встраивании вкладок в экранную форму их число равняется Двум. Вкладки не имеют своего построителя, и вся настройка осуществляется при помощи окна Properties (Свойства). Более того, объект PageFrame также является контейнером и содержит в контекстном меню пункт Edit (Редактировать).

Разместив в нашей форме вкладки, увеличим их число до трех, изменив значение свойства PageCount в окне Properties.

Как видишь, у нас появились три вкладки, имеющие заголовки Pagel, Page2, Page3. Кстати, эти объекты имеют и такие же имена. Изменим заголовки вкладок — для этого щелкнем правой кнопкой на объекте PageFramel и выберем пункт Edit контекстного меню. После этого станет возможным переключение между вкладками и определение свойств для каждой из них.

Первое, что мы сделаем — изменим значение свойства caption.

Теперь поговорим о размещении объектов на вкладках. Правило здесь такое — не забывать включать режим Edit из контекстного меню, иначе размещаемый объект “вставится” не на нужную вкладку, а на сам объект PageFrame.

Вот и давай разместим на первой вкладке три “утопленных” контейнера. Для этого в режиме Edit перейди на первую вкладку (если она не открыта — это происходит по умолчанию) и размести необходимые объекты. Можешь поставить туда только один контейнер, определить необходимые свойства, а затем, воспользовавшись командами копирования и вставки, добавить остальные.

Размещение объектов на вкладках

Изображение (Image)

Элемент управления image предназначен для размещения в экранной форме изображений. Непосредственно за само изображение отвечает свойство Picture, в котором нужно указать путь к графическому файлу. Помнишь, мы использовали данное свойство для экранной формы?

Размещаем объект, указываем путь к файлу и производим настройку других свойств, а именно свойства stretch, которое может принимать следующие значения:

– Clip (Обрезать) — картинка сохраняет свои размеры;

– Isometric (Изменить, сохранив форму) — картинка занимает весь объект image, причем пропорционально изменяет свои размеры;

– Strech (Изменить, заполнив рамку) — картинка занимает весь объект image, но размеры не меняет.

Размещение изображения в форме

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100