Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 [ 39 ] 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146

1 - dynasets - позволяет создать обновляемый набор записей, выбирая и считывая из источника данных только необходимые записи на основе уникальных ключевых значений для каждой записи. Этот способ позволяет снизить объем данных, передаваемых на рабочую станцию с сервера. Данные из полей примечаний и изображения считываются только тогда, когда возникает необходимость их отображения на экране.

2 - snapshots - позволяет создать набор записей, которые не будут иметь возможности обновления в источнике данных.

После этого вы можете выбрать нужную для работы таблицу с помощью свойства Object.RecordSource [= Value ]

В качестве параметра Value для этого свойства можно использовать имя таблицы, символьное выражение, содержащее команду SQL, приемлемую для используемой БД, или имя одного из объектов QueryDef, содержащегося в коллекции QueryDefs объекта Database (об объектах для доступа к данным, используемых в процессоре баз данных Microsoft Jet, см. главу 6).

Вот теперь, вернувшись к объекту TextBox и предварительно указав в свойстве DataSource имя элемента управления для работы с БД, мы можем назначить для него требуемый источник данных с помощью свойства Object.DataField [ = cName]

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

Для вывода и редактирования больших объемов текстовой информации, которая может храниться, например, в полях примечаний, в Visual FoxPro есть специальный элемент управления - EditBox - поле редактирования. В поле редактирования доступны все возможности по работе с текстом, такие как вырезка, копирование и т. д. Текст в поле редактирования может прокручиваться по вертикали, а длинные строчки автоматически усекаются по правой границе поля и переносятся на следующую строку.

В Visual Basic для этого используется текстовое поле, которое имеет специальное свойство Multiline. При установке его значения в True текстовое поле может занимать несколько строк.

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

В случае, если необходимо так организовать ввод данных, чтобы дать пользователю возможность выбирать данные только из заранее определенного списка, следует присвоить свойству Style значение 2 (drop-down list). Комбинированный список с возможностью ввода создается при значении свойства Style равным 0 (drop-down combo). В Visual Basic вы можете использовать еще одно значение - 1. При этом создается список Simple Combo, состоящий из текстового поля, в которое пользователь может вводить данные, и незакрывающегося списка.

В комбинированный список можно включать самые разнообразные данные. В Visual Basic источник данных будет определяться по такой же схеме, как для текстового поля. В Visual FoxPro тип определяется значением свойства RowSourceType. Control.RowSourceType [ = nSource]

Значения параметра nSource могут быть:

• 0 - (по умолчанию) - нет данных. Список заполняется во время работы пользовательской программы с помощью методов AddItem или AddListItem.

• 1 - значения. Список заполняется данными, непосредственно указанными в свойстве RowSource.

• 2 - псевдоним. Список заполняется данными из полей в таблице, открытой в указанной рабочей области.

• 3 - операторы SQL.

• 4 - запрос. В список помещаются результаты выполнения файла запроса (QPR).

• 5 - массив.

• 6 - поля. В отличие от значения 2, поля в список можно включить в произвольном порядке и из различных таблиц.

• 7 - файлы.

• 8 - структура таблицы.

Для заполнения списка используются значения, задаваемые свойством Control.RowSource [ = cList]

Параметр cList может представлять, в зависимости от значения свойства RowSourceType, разделенный запятыми список значений, таблиц, файлов, операторы SQL, имя массива или имя файла запроса. Перечень файлов можно задать, используя символы шаблона.

В Visual Basic для вывода списков файлов, доступных устройств или папок есть специальные объекты - FileListBox, DirListBox и DriveListBox. Комбинация этих элементов дает возможность интерактивного выбора пользователем каких-либо файлов или места записи данных во время работы пользовательского приложения.

В первых двух список выводимых файлов или папок определяется свойством Path.



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

Свойство Value этого элемента управления может принимать значение "истина" .T. (1) или "ложь" .F. (0). Например, при изменении данных можно создать копию файла с данными до изменения, а можно не создавать. Программно для поля проверки можно задать и третье, неопределенное состояние, когда элемент управления не находится ни в первом, ни во втором состоянии. При этом свойство Value будет иметь значение NULL или 2.

Все вышеупомянутые объекты способны отображать данные из одного поля. Исключением являются списки, так как они могут отображать несколько колонок, а следовательно, и полей с данными. Но все-таки исключительно любимым программистами и, что особенно важно, пользователями способом представления данных остается таблица. Для создания таблицы проще всего использовать специально предназначенный для этого объект - Grid.

В отличие от Visual FoxPro в Visual Basic нет "родного" объекта Grid. Для создания таблицы вы можете использовать поставляемые вместе с Visual Basic дополнительные элементы управления -ActiveX. Об этих объектах мы расскажем в отдельном разделе этого параграфа.

Объект Grid является объектом-контейнером, который содержит объект-контейнер Columns, содержащий, в свою очередь, объект Header. Объекты Columns и Header тоже имеют свои свойства, события и методы. По умолчанию данные в каждой колонке отображаются с помощью текстового поля, но мы можем использовать для этого любой другой элемент управления, способный работать с данными. Например, ничто не мешает нам в каждой клетке Grid разместить еще один Grid.

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

Для работы с данными в Grid можно использовать следующие свойства. Grid.RecordSourceType [ = nType]

Определяет тип источника данных для заполнения Grid. Параметр nType может принимать следующие значения:

• 0 - таблица. Автоматически открывается таблица, указанная в свойстве RecordSource.

• 1 - псевдоним (по умолчанию).

• 2 - по выбору пользователя. Источник данных устанавливает пользователь во время работы программы.

• 3 - запрос. В свойстве RecordSource должно быть указано имя файла-запроса (QPR).

Grid.RecordSource [ = cName]

Определяет имя источника данных. Чаще всего это псевдоним курсора или таблицы.

Специальный набор свойств позволяет изменять параметры, установленные для колонки во время работы программы при каждом обновлении Grid. К таким свойствам относятся:

• DynamicAlignment - выравнивание данных;

• DynamicCurrentControl - используемый элемент управления;

• DynamicForeColor - цвет символов;

• DynamicBackColor - цвет фона;

• DynamicFontName - имя шрифта;

• DynamicFontSize - размер шрифта;

• DynamicFontBold - полужирное начертание шрифта;

• DynamicFontItalic - курсивное начертание шрифта;

• DynamicFontStrikeThru - перечеркнутое начертание шрифта;

• DynamicFontUnderline - подчеркнутое начертание шрифта.

Объекты для управления работой приложения

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



работы с данными.

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

Объект CommandButton создает отдельную управляющую кнопку. Управляющая кнопка обычно используется для запуска процедуры или события, которые реализуют какие-либо действия типа закрытия формы, перемещения к другой записи в таблице и т. д.

На кнопку мы можем поместить поясняющий текст с помощью свойства Caption или изображение (только в Visual FoxPro) с помощью свойства Picture.

Чтобы не задумываться над размерами кнопки, особенно если вы интерактивно меняете на ней текст, в Visual FoxPro установите для свойства Autosize значение .T..

Как правило, действие, которое должно выполниться при нажатии на управляющую кнопку, определяется событием Click. Мы можем предусмотреть выполнение этого события и при нажатии клавиши Enter, для одной из двух или более управляющих кнопок в форме, когда активен какой-либо другой элемент управления, с помощью свойства CommandButton.Default [ = lExpression]

Если для указанной кнопки параметр lExpression равен .T., то эта кнопка сработает при нажатии клавиши Enter на любом другом элементе управления в форме. По умолчанию значение lExpression равно .F.. Естественно, только одна кнопка в форме может иметь значение lExpression, равное .T..

Совершенно аналогично для одной из управляющих кнопок в форме мы можем предусмотреть выполнение присвоенного ей действия при нажатии клавиши Esc с помощью свойства CommandButton.Cancel [ = lExpression]

Для выбора какого-то одного действия из нескольких возможных лучше всего использовать кнопки выбора - OptionButton.

Обратите внимание, что кнопку выбора мы можем использовать только как объект для создания группы кнопок выбора. Если вы используете визуальные средства проектирования, то кнопка выбора как объект может использоваться в Visual FoxPro только в Конструкторе класса.

При создании кнопки выбора мы можем расположить поясняющий текст справа, как принято по умолчанию, или слева от изображения кнопки, присвоив свойству Alignment значение 1.

Стоит отметить, что в Visual FoxPro для создания сразу нескольких кнопок существуют соответствующие объекты CommandButtonGroup и OptionButtonGroup. Их применение существенно ускоряет процесс создания экранных форм с постоянным набором управляющих действий.

Объект Timer - таймер (счетчик времени) - позволяет задать интервал времени или продолжительность выполнения каких-либо действий в программе. В отличие от других элементов управления, этот объект не виден пользователю во время работы программы. Его назначение заключается только в обеспечении функциональности пользовательского приложения, связанной с продолжительностью работы.

Основным свойством для таймера, которое позволяет задать интервал времени между его срабатыванием (выполнением события Timer), является Timer.Interval [ = nTime]

По умолчанию значение nTime равно 0, что препятствует срабатыванию таймера. Максимальное значение параметра nTime может быть равным 2147483647 миллисекунд, что превышает продолжительность 24 дней. При выборе значения для интервала срабатывания таймера необходимо учитывать следующее:

• В связи с тем, что система вырабатывает прерывания с частотой 18 раз в секунду, реальное значение интервала не может быть меньше, чем 56 миллисекунд.

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

• Чем меньшее значение вы устанавливаете для интервала, тем чаще программа должна генерировать событие Timer и, следовательно, меньше ресурсов будет оставаться на выполнение других операций, и скорость работы программы может существенно уменьшиться.

Для сброса времени отсчета интервала и установки его отсчета с нуля используется метод

Reset.

В Visual Basic своеобразный элемент управления в виде движка может быть выполнен на основе объектов HScrollBar и VScrollBar. Эти же объекты могут быть использованы для прокрутки длинных списков или больших объемов данных.

Объекты для оформления интерфейса пользователя



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 [ 39 ] 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146