Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VisualFoxPro.doc
Скачиваний:
15
Добавлен:
01.07.2025
Размер:
11 Мб
Скачать
☆

6.2.6. Счетчик и переключатели формы

Счетчик SpinnerColumnNumber употребляется для задания номера сортируемого столбца. Чтобы избежать ошибок ввода номера, нижняя и верхняя граница счетчика задаются в обработчике события Init формы ArrayShow соответственно равными 1 и n, где n – число столбцов отображаемого массива.

Переключатели, задающие направление сортировки выбранного столбца массива, входят в группу OptionGroupSortOrder. Свойства Name, TabIndex, Left, Top, Height и Width группы изменены. Остальные свойства имеют заданные по умолчанию значения.

Заметим, что свойство Themes (Темы) влияет на качество отображения группы в диалоге. Это свойство определяет, действуют ли предусмотренные Windows XP повышающие качество отображения элементов управления средства. В частности, если для группы переключателей отказаться от использования этих средств, задав

ThisForm.OptionGroupSortOrder.Themes = .F.

то рамка группы будет выведена в виде обычного прямоугольника (рис. 6.5, а).

а

б

Рис. 6.5. Действие свойства Themes: а – Themes = .F.; б – Themes = .T.

Если же восстановить заданное по умолчанию значение

ThisForm.OptionGroupSortOrder.Themes = .T.

то VFP скруглит углы прямоугольника и несколько смягчит цвет его сторон (рис. 6.5, б).

Свойство Value группы переключателей может принимать значения 1 и 2 (по числу имеющихся в группе переключателей, задаваемым ее свойством ButtonCount). При этом, если выбран переключатель с заголовком "Возрастающая" (имя Incr), то значение рассматриваемого свойства будет равно 1, и будет равно 2 при выборе переключателя с заголовком "Убывающая" (имя Decr). Номер переключателя в группе можно определить, например, просмотрев группу в окне свойств формы (рис. 6.6).

Рис. 6.6. Фрагмент окна свойств формы ArrayShow

По умолчанию свойство Value переключателя может принимать значение 0 или 1. Если настройки, заданные по умолчанию, сохранены, то в события Click кнопки "Сортировать" вместо кода

&& Устанавливаем значение переменной nSortOrder по значению

&& свойства Value группы переключателей OptionGroupSortOrder

nSortOrder = .OptionGroupSortOrder.Value – 1

определяющего порядок сортировки массива FormArray, можно записать иной, апеллирующий к свойству Value переключателя:

&& Устанавливаем значение переменной nSortOrder равным значению

&& свойства Value переключателя Decr, входящего в группу OptionGroupSortOrder

nSortOrder = ThisForm.OptionGroupSortOrder.Decr.Value

6.2.7. Надписи формы

Характеризуя два введенных элемента управления – надписи Label1 и Label2, укажем, что отображаемый в форме текст определяется свойством Caption. Для изменения выводимого текста этому свойству присваивается новое значение, например:

ThisForm.Label1.Caption = "Новый текст"

Перенос текста элемента управления Label2 обеспечивается за счет установки свойства WordWrap этого объекта равным .T. (рис. 6.7).

Рис. 6.7. Задание свойства WordWrap элемента управления Label2

6.2.8. Массив как параметр формы

Если массив формируется вне формы, то он может быть передан форме как параметр. При этом процедурой, принимающей параметры, является обработчик события Init открываемой формы.

Пусть вызывающая программа имеет следующий текст:

&& Формируем двумерный массив формы 54 и выполняем его инициализацию

dimension someArray[5, 4]

for k = 1 to Alen(someArray)

someArray[k] = Int(10 * Rand( ))

endFor

&& Открываем форму ArrayShow.scx,

&& передавая ей в качестве параметра массив someArray

do form d:\HomeLibrary\Forms\ArrayShow.scx with someArray

Тогда процедура-обработчик события Init формы ArrayShow может иметь следующий код:

&& Обработчик события Init формы ArrayShow

&&

parameters someArray

&& Протяженности массива по первому и второму измерениям

m = Alen(someArray, 1)

n = Alen(someArray, 2)

with This

.AddProperty("FormArray(m, n)")

&& Заполняем массив-свойство FormArray формы

for k = 1 to m * n

.FormArray(k) = someArray(k)

endFor

.ListArray.RowSource = "ThisForm.FormArray"

…

endWith

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]