Visual FoxPro содержит, рассмотренные в данной статье, расширения в классах, формах, элементах управления и синтаксисе, связанном с объектно-ориентированным программированием.
Привязка
визуальных управляющих элементов
Вы можете "привязать" (anchor) визуальный управляющий элемент к одному или более углам его родительского контейнера с помощью свойства Anchor управляющего элемента. Когда вы привязываете визуальный управляющий элемента к его родительскому контейнеру углы управляющего элемента остаются в той же самой позиции по отношению к углам родительского контейнера во время изменения размеров контейнера. Для получения более подробной информации смотрите описание Свойство Anchor.
Стыковка форм
Visual FoxPro расширил поддержку стыковки для форм, созданных пользователем. Стыковка форм работает схожим образом со стыковкой панелей инструментов, за исключением возможности стыковки форма пользователя с системными окнами Visual FoxPro Interactive Development Environment (IDE) и другими формами, а управляющие элементы на форме могут по прежнему получать фокус, в случае, если форма состыкована с другим объектом.
Visual FoxPro включает приведенные ниже новые и обновленные свойства, методы и события для поддержки стыковки форм.
Для получения более подробной информации смотрите Как: стыковать формы.
Элементы управления CheckBox и OptionButton
поддерживают перенос слов (Wordwrapping)
Свойство WordWrap теперь поддерживается и для элементов управления CheckBox и OptionButton. Текстовая часть этих элементов теперь использует перенос слов (wordwrapping). Для получения более подробной информации смотрите Свойство WordWrap.
Элемент управления CommandButton может выравнивать текст с картинками
Свойство Alignment теперь применимо к элементу CommandButton, когда для свойства Picture указывается картинка и установлено значение для свойства PicturePosition, отличное от значения по умолчанию. Свойство Alignment также содержит новые и пересмотренные установки для элементов CommandButton, CheckBox и OptionButton. Для получения более подробной информации смотрите Alignment свойство.
CommandButton, OptionButton
и CheckBox Controls могут скрывать заголовки (Captions)
Свойство PicturePostion содержит новую установку - 14 (No text) для элементов CommandButton, OptionButton и CheckBox. Вы можете использовать эту установку для скрытия текстовой части этих элементов, без необходимости устанавливать значение Caption в пустую строку. Эта установка, в частности, полезна, когда вы желаете добавить для кнопки с графикой "горячий ключ" без отображения текста Caption. Вы должны установить свойство Style в 1 (Graphical) для применения этой новой установки.
Дополнительно, свойство PicturePosition теперь применимо к элементам CheckBox и OptionButton при установке свойства Style в 1 (Graphical).
Для получения более подробной информации смотрите описание свойства PicturePosition.
Свойства PictureMargin
и PictureSpacing управляют пространством и границами на элементах CommandButton,
OptionButton и CheckBox
Вы можете улучшить позиционирование графики на элементах CommandButton, OptionButton и CheckBox с помощью новых свойств PictureMargin и PictureSpacing. Свойство PictureMargin указывает граничное пространство в пикселях между графикой и бордюром элемента, а бордюр элемента определяется свойством PicturePosition. Свойство PictureSpacing указывает граничное пространство в пикселях между графикой и текстом на элементе.
Для получения более подробной информации смотрите описание свойств PictureMargin и PictureSpacing.
Объекты Collection поддерживаются
элементами ComboBox и ListBox
Вы можете указать объекты Collection в качестве источника строки и типа источника строки для свойств RowSource и RowSourceType элементов ComboBox и ListBox. Для получения более подробной информации смотрите описание свойств RowSource и RowSourceType.
Установка индексов Ascending или
Descending на курсорах в DataEnvironment
Вы можете указать нарастающее или убывающее упорядочивание для индексов курсоров, используя новое свойство OrderDirection для объектов Cursor.
![]() |
---|
OrderDirection сбрасывается, когда свойству Order присвоено пустое значение. |
Для получения более подробной информации смотрите описание свойства OrderDirection.
Grid поддерживает Rushmore
оптимизацию
Для элемента Grid может быть установлена поддержка Rushmore оптимизации, если используемый источник данных содержит индексы, которые обеспечивают такую поддержку.
Для получения более подробной информации смотрите описание свойства Optimize.
Mouse Pointer для колонок
Grid и заголовков Column
Свойства MousePointer и MouseIcon теперь применимы к объектам Column в grid'е и к объектам Header в колонках. Для свойства MousePointer вы теперь можете указать новое значение 16 (Down Arrow) для сброса указателя мыши для заголовка колонки в используемую по умолчанию "стрелка вниз".
Для получения более подробной информации смотрите описание свойств MousePointer и MouseIcon.
Вращение элементов Label, Line и Shape
Вы можете использовать новое свойство Rotation для вращения элементов Label. Свойство Rotation применимо к элементам Line и Shape при использовании ими нового свойства PolyPoints. Для получения более подробной информации смотрите описания Свойство Rotation (Visual FoxPro), Свойство PolyPoints и Создание более сложных фигур с использованием свойства PolyPoints.
Элементы Label могут
отображать тематические задники (Themed Background)
Для элементов Label вы можете установить свойство Style в значение Themed Background Only для показа themed background colors, когда включены темы Windows. Цвет задника метки является тем же самым, что и цвет родительского контейнера для метки. Для получения более подробной информации смотрите Style.
Элемент ListBox может
скрывать полосы прокрутки
Вы можете использовать новое свойство AutoHideScrollBar для управляющего элемента ListBox для скрытия полос прокрутки, когда список содержит меньшее количество элементов, которое может вместить видимая часть управляющего элемента ListBox. Для получения более подробной информации смотрите описание свойства AutoHideScrollBar.
Управляющие
элементы Toolbar могут отображать горизонтальный разделитель
объектов
Для объектов Separator установите свойство Style в значение 1 для отображения горизонтальной линии или вертикальной линии, в зависимости от того, как появилась панель. Если toolbar появился горизонтально, линия отображается вертикально. Если toolbar появился вертикально, линия отображается горизонтально. В предыдущих версиях, установка Style в 1 отображала только вертикальную линию.
![]() |
---|
В предыдущих версиях, расстыкованная вертикальная система и определенная пользователем панель инструментов не отображали горизонтальных разделителей. В текущем выпуске (9.0 SP1) горизонтальные разделители теперь отображаются для вертикальных расстыкованных панелей инструментов. |
Для получения более подробной информации смотрите описание свойства Style.
Управляющие
элементы Toolbar теперь могут прятать объекты Separator
Свойство Visible теперь применяется и для объектов Separator, так что теперь вы можете управлять ситуацией- будут ли отображаться объекты Separator в управляющем элементе Toolbar или нет. При использовании в комбинации со свойством Styleо, свойство разделителя Visible определяет будет ли пространство или линия отображаться в качестве разделителя, когда его свойство Style установлено в 0 (Normal - do not display a line - не отображать линии) или 1 (display a horizontal or vertical line - отображать горизонтальные или вертикальные линии), соответственно.
Для получения более подробной информации смотрите описание свойства Visible (Visual FoxPro).
Создание
более сложных контуров
Вы можете использовать новое свойство PolyPoints для управляющих элементов Line и Shape для создания полигонов линий или контуров. PolyPoints определяет массив любого размера, содержащий координаты в формате X1, Y1, X2, Y2, ..., организованные в том порядке, в каком рисуются полигоны линии или контура.
Для управляющего элемента Line, при создании полигона линии с помощью свойства PolyPoints, вы можете указать новые установки"S" или "s" для свойства LineSlant для создания кривых Безье.
Для получения более подробной информации смотрите описания свойств PolyPoints и LineSlant.
Управляющие
элементы ComboBox могут прятать выпадающие списки
Теперь вы можете использовать команду NODEFAULT в методе, ассоциированном с событием DropDown для управляющего элемента ComboBox. Это предотвратит появление части - выпадающий список - управляющего элемента ComboBox. Для получения более подробной информации смотрите описание команды NODEFAULT.
NEWOBJECT()
создает объекты без исполнения инициализационного кода
Для имитации поведения класса, открываемого в дизайнере класса или в дизайнере формы, перешлите 0 параметру cInApplication. Эта возможность позволит вам создавать инструменты design-time, чтобы видеть структуру класса.
Посылкой 0 параметру cInApplication в функции NEWOBJECT( ), Visual FoxPro позволяет вам создавать инстанцию класса без исполнения инциализационного кода (такого, как код в Init, Load, Activate и BeforeOpenTables). Более того, когда объекта освобождается, он не исполняет код в его деструкторе (таком, как Destroy и Unload). Подавляются только коды инициализации и разрушения объекта, все прочие коды продолжают оставаться доступными для вызовов.
Если вы используете параметр cInApplication для подавления описанных кодов в объекте, вы кроме того, подавляете его в дочерних объектах объекта.
Это поведение не поддерживается для метода NewObject.
Для получения более подробной информации смотрите описание функции NEWOBJECT().
Указание
куда должен быть присвоен фокус в событии Valid
Для направления фокуса, вы можете использовать необязательный параметр ObjectName в команде RETURN события Valid event. Указанный в команде объект должен быть действительным объектом Visual FoxPro. Если указанный объект disabled или не может принять фокус, тогда фокус переносится на следующий объект в определенном табуляционном порядке, который сформирован при вводе объектов в форму или прочие контейнеры. Если в качестве объекта указан недействительный объект, Visual FoxPro сохраняет фокус на текущем объекте.
Вы теперь можете устанавливать фокус по следующим сценариям:
-
Установить фокус на объект в другой видимой форме.
-
Установить фокус на объект в невидимых управляющих элементах Page или Pageframe.
Для получения более подробной информации смотрите описания Событие Valid and Команда RETURN.
Управляющие
элементы TextBox имеют функциональность автозавершения (Auto-Completion)
Вы можете добавить функциональность автозавершения вашим УЭ textbox, для более эффективного ввода данных. Автозавершение представляет собой автоматическое отображение выпадающего списка значений, который сопоставим со строкой, которую вы печатаете в textbox'е. Список заполняется из специальной таблицы, которая отслеживает уникальные значения, введенные в textbox, имя управляющего элемента, как источника значений и информацию частоты использования.
Поддержку автозавершения обеспечивают приведенные ниже свойства:
Установкой свойства AutoComplete, вы определяете порядок сортировки входов списка. Если вы желаете получить больший контроль над списком, а также предметом, где эти входа хранятся, вы можете использовать свойство AutoCompSource для указания таблицы, используемой для автоматического "заселения" списка. По умолчанию используется таблица AUTOCOMP.DBF. ВЫ можете использовать одну таблицу для каждого УЭ textbox или одну на все УЭ, для автоматического заполнения списков.
Если вы используете единичную таблицу, что является сценарием по умолчанию, таблица использует значения в поле Source каждого входа для идентификации УЭ textbox, ассоциированного со входом. По умолчанию, в поле Source вносится имя УЭ textbox. Вы можете указать значение поля Source, использовав свойство AutoCompSource textbox'а. Например, вы можете пожелать создать одинаковый набор входов, доступный для множества Textbox'ов внутри приложения, таких, как, например, адресная информация. Вы можете явно задать значения свойств AutoCompTable и AutoCompSource для каждого УЭ использовав одну и ту же таблицу и значение поля источника входов. Одинаковый список автоматически появится у каждого из них.
Управляющий элемент textbox обрабатывает обновление таблицы автозавершения за вас, основываясь на данных, реально введенных пользователем. Если вы пожелаете удалить значение из списка, введите строку в textbox, которая соответствует строке, которую вы желаете удалить. Выделите ввод ы списке и нажмите на клавишу DELETE. Строка останется в таблице, но больше автоматически не покажется в списке.
![]() |
---|
Вы можете управлять числов входом, которые появляются в выпадающем списке посредством SYS(2910) - List Display Count. |
Для получения более подробной информации смотрите описания свойств AutoComplete, AutoCompSource и AutoCompTable.
Новые
установки свойств InputMask и Format
Теперь являются доступными перечисленные ниже новые установки для свойств InputMask и Format:
InputMask свойство
cMask | Описание |
---|---|
U |
Разрешает только символы алфавита и преобразует их в верхний регистр (A - Z). |
W |
Разрешает только символы алфавита и преобразует их в нижний регистр (a - z). |
Format свойство
cFunction | Описание |
---|---|
Z |
Не заполняет значение ничем, если оно равно 0, за исключением случая, когда управляющий элемент имеет фокус. В УЭ такой маской поддерживаются и значения типа Date. Разделителя / / не отображаются пока УЭ не получил фокус. |
Для получения более подробной информации смотрите описания свойств InputMask и Format.
Используйте
свойство PictureVal для пересылки картинки, как строки
Новое свойство PictureVal управляющего элемента Image может быть использовано для указания символьного строчного выражения или объекта картинки вместо Picture свойство (Visual FoxPro). Для объекта, формат должен форматом IPicture interface, совместимый с функцией LOADPICTURE().
Для получения более подробной информации смотрите PictureVal свойство.
Обновленная
команда CLEAR CLASSLIB
Команда CLEAR CLASSLIB теперь автоматически исполняет команду CLEAR CLASS на каждом классе указанной библиотеки. Любые ошибки, которые могут возникнуть в течение освобождения конкретных индивидуальных классов (например, class in use) - игнорируются.
![]() |
---|
Классы в других библиотеках классов, которые используются или на которые имеются ссылки в классе указанной библиотеки не очищаются. |
Для получения более подробной информации смотрите описание команды CLEAR.
Увеличен
предел разрешения экрана
В предыдущих версиях Visual FoxPro, определяемая максимальная область для форм была ограничена двойным разрешением экрана по обоим измерениям X и Y. Например, если разрешение вашего монитора составляет 1280x1024, тогда максимальный размер формы будет:
![]() |
|
---|---|
Form.Width = 2552 Form.Height = 2014 |
Дополнительно к сказанному, если вы пытались установить свойства Width и Height в эти предельные значения в design-time и затем запускали форму, вы должны были увидеть, что эти значения падали до ограничений разрешения экрана:
![]() |
|
---|---|
Form.Width = 1280 Form.Height = 998 |
В Visual FoxPro 9.0, это ограничение увеличено примерно до 32,000 пикселей на каждое измерение и теперь позволяет вам большую гибкость с определенными формами, такими, как прокручиваемые формы:
![]() |
|
---|---|
Form.Width = 32759 Form.Height = 32733 |
Для получения более подробной информации смотрите Width свойство and Height свойство.
Исходный
код ProjectHook управляет событиями
В класс ProjectHook были добавлены новые события, которые позволяют вам производит операции проверки на уровне исходного кода, такие как check-in и check-out множества файлов за раз.
Для получения более подробной информации смотрите описание событий SCCInit and SCCDestroy.
Метод AddProperty поддерживает установки Design Time
Вы можете указать область видимости (Protected, Hidden или Public) и описание свойства, используя метод AddProperty с новыми доступными параметрами. Эти установки могут быть, кроме того, контролируемы посредством диалогового блока New Property и диалогового блока Edit Property/Metho. Для получения более подробной информации смотрите Метод AddProperty.
Метод WriteMethod поддерживает установки Design Time
Вы можете указать область видимости (Protected, Hidden или Public) и описание метода используя метод WriteMethod с новыми доступными параметрами. Эти установки могут быть, кроме того, контролируемы посредством диалогового блока New Property и диалогового блока Edit Property/Method. Для получения более подробной информации смотрите Метод WriteMethod.
Смотрите также
Справочное руководство
Указатель по расширениям системы отчетовРасширение возможностей в обработке данных и XML
Улучшения языка SQL
Расширения языка
Расширения Interactive Development Environment (IDE
Расширения в дизайнерах Visual FoxPro
Прочие смешанные расширения
Изменения в функциональности для текущего выпуска
Прочие ресурсы
Что нового в Visual FoxPro
© Microsoft Corporation. All rights reserved.