|
Программирование >> Разработка пользовательского интерфейса
работы с данными. Наиболее часто используемым объектом для управления работой приложения, несомненно, является элемент управления 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. Эти же объекты могут быть использованы для прокрутки длинных списков или больших объемов данных. Объекты для оформления интерфейса пользователя Объект Image создает элемент управления в виде изображения формата BMP. Может использоваться для создания областей на форме, реагирующих на действия пользователя. В Visual Basic кроме объекта Image есть и объект PictureBox, который обладает расширенной функциональностью, например, может выводить дополнительно изображения в формате ICO и WMF, но работает медленнее. Источник изображения для этого объекта устанавливается с помощью свойства Control.Picture = cFileName В Visual FoxPro источник изображения может храниться и в поле типа General. В подобном случае имя этого поля указывается вместо имени файла. Объект Label создает метку для вывода поясняющего текста. Для придания метке нужного вида можно использовать следующие полезные свойства. Control.Alignment [ = nValue] Если параметр nValue будет равен 0 (по умолчанию), то текст в метке выравнивается по левому краю, если 1 - по правому, если 2 - по центру. Label.WordWrap [ = lExpression] Позволяет регулировать процесс изменения текста, заполняющего метку при изменении ее размера. По умолчанию параметр lExpression равен .F. и текст в метке не переносится между строками, при этом горизонтальный размер метки изменяется так, чтобы вместить текст по длине, а вертикальный остается без изменения, чтобы вместить имеющееся число строк текста с учетом размера шрифта. Если параметр lExpression равен .T., то текст может переноситься между строками с изменением вертикального размера метки в зависимости от длины текста и размера шрифта. При этом свойство AutoSize игнорируется. Object.BorderStyle [ = nStyle] Это свойство определяет вид рамки для метки. По умолчанию параметр nStyle равен 0 и рамка не изображается. Если параметр nStyle равен 1, то метку будет окаймлять одинарная линия. Очень полезное свойство AutoSize позволяет не отслеживать размер помещаемого в элемент управления текста, особенно если текст изменяется во время работы программы. Объект Line создает элемент управления в виде линии, а Shape - в виде прямоугольника, окружности или овала. Требуемая форма последнего объекта в Visual FoxPro определяется свойством Shape.Curvature [ = nCurve] По умолчанию параметр nCurve равен 0 и рисуется прямоугольник. Если значение параметра nCurve находится в диапазоне от 1 до 98, то будет рисоваться прямоугольник со все более скругленными углами, если 99 - круг или эллипс. В Visual Basic форма объекта определяется другим свойством и более жестко Object.Shape [ = Value] Параметр может принимать одно из следующих значений: 0 - прямоугольник (по умолчанию); 1 - квадрат; 2 - овал; 3 - окружность; 4 - прямоугольник со скругленными углами; 5 - квадрат со скругленными углами. В Visual Basic объекты Line и Shape выполняют чисто оформительские функции, так как не реагируют на события. Аналогом объекта Shape, как элемента управления, в Visual Basic является Frame, который графически представляется прямоугольником с заголовком на верхней стороне и имеет необходимый набор событий. Объекты-контейнеры Одним из наиболее важных объектов, который используется для объединения всех элементов управления, размещаемых в одном окне, является объект Form - экранная форма. В целом интерфейс приложения состоит из форм, которые и обеспечивают ему требуемую функциональность при решении какой-либо задачи, например, редактирования или ввода данных, поиска нужной информации и т. д. Наиболее эффективным средством создания формы является Конструктор формы (Form Designer), о работе с которым пойдет речь в главе 9. Внешний вид формы может быть установлен с помощью большинства свойств, общих для всех элементов управления. Следующий набор свойств позволяет установить или убрать возможность управления формой как окном с помощью системного меню. Object.ControlBox [ = lExpression] Определяет, появляется ли системное меню в верхнем левом углу формы во время ее выполнения. Если параметр lExpression принимает значение .T. (по умолчанию), то системное меню отображается, если .F., то нет. Object.MaxButton [ = lExpression] Определяет, имеет ли форма кнопку Maximize (увеличение размера окна до максимального размера). Если параметр lExpression принимает значение .T. (по умолчанию), то форма имеет кнопку Maximize; если .F., то нет. Максимальное открытие окна Form во время выполнения программы вызывает событие Resize. Object.MinButton [ = lExpression] Определяет, имеет ли форма кнопку Minimize (уменьшение размера окна до пиктограммы). Если параметр lExpression равен .T. (по умолчанию), то форма имеет кнопку Minimize; если .F., то нет. Уменьшение формы до пиктограммы во время выполнения программы генерирует событие Resize. Object.Icon [ = cFileName] Определяет изображение, которое будет выведено при минимизации формы. Файл, имя которого указано в cFileName, должен иметь по умолчанию расширение ICO. Object.KeyPreview [ = lExpression] Определяет, прерывает ли событие KeyPress в форме событие KeyPress в элементе управления. Если параметр lExpression принимает значение .T., то сначала событие KeyPress получает форма, а затем активный элемент управления; если .F. (по умолчанию), то событие KeyPress получает активный элемент управления, а форма не получает. Вы можете использовать это свойство, чтобы создать для формы процедуру управления с помощью клавиатуры. Например, когда прикладная программа использует функциональные клавиши, вы можете обрабатывать нажатия клавиши на уровне формы скорее, чем для каждого элемента управления. Объект FormSet создает набор форм, что позволяет легко координировать работу сразу с несколькими формами. Этот объект есть только в Visual FoxPro, в Visual Basic ему в соответствие можно поставить коллекцию Forms. Набор форм обеспечивает следующие возможности: Одновременное выполнение какого-либо действия сразу для нескольких форм. Свободное управление расположением форм на экране для достижения максимального удобства в работе с ними. Создание одного объекта DataEnvironment для всех форм в наборе и обеспечение тем самым синхронизации в перемещении данных. В то же время следует заметить, что наличие в Visual FoxPro такого объекта, как страничный блок (PageFrame), позволяет вместить практически неограниченный объем данных в одну форму. Для набора форм можно использовать множество свойств, событий и методов, доступных для отдельной формы. Некоторые свойства для набора форм особенно важны. Так, в Visual FoxPro для набора форм существует свойство
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |