В данной версии системы Visual FoxPro,  вы найдете различные улучшения функциональности за счет новых и усовершенствованных команд и функций. Каждый из представленных разделов содержит дополнительную информацию о различных дополнениях и улучшениях Языка программирования VFP.

Expand imageУлучшения в Классах

Система Visual FoxPro содержит значительные "языковые" расширения и улучшения в Классах, Формах, Контролах, функциональности объектно-ориентированного программирования. См. дополнительно раздел Улучшения в Классах.

Expand imageУлучшения обработки Данных и XML

Система Visual FoxPro содержит значительные улучшения и расширения функциональности в обработке данных, SQL,  XML. См. дополнительно разделы Улучшения в языке SQL (обработки данных) и Усовершенствования функциональности в обработке данных и XML.

Expand imageРасширение функциональности IDE

Система Visual FoxPro содержит несколько расширений Языка, обеспечивающих лучшую функциональность подсистемы IDE (Interactive Development Environment - Интерактивная Среда Разработки). См. дополнительно разделы: Улучшения в Интерактивной Среде Разработки  (IDE) и Усовершенствования в Дизайнерах Visual FoxPro.

Expand imageФункциональные Расширения подсистемы Отчетов и Печати

Visual FoxPro содержит несколько языковых расширений для поддержки Новой функциональности подсистемы Отчетов:

  • REPORT FORM , Команда

    Отображает и/или печатает Отчет, полученный из стандартного файла отчета (.frx). Данная команда значительно расширена для поддержки функциональности нового базового объекта Report Listener.

  • SET REPORTBEHAVIOR , Команда

    Управляет подсистемами предварительного просмотра (Report Preview) и вывода Отчетов (Report Output), реализованными стандартно в Visual FoxPro Report System.

  • SYS(2024) - Определение варианта завершения Отчета

    Определяет, как пользователь завершил вывод результатов Отчета.

Дополнительно, имеются некоторые улучшения функциональности в подсистеме получения Отчетов:

  • SYS(1037) - Диалоговый бокс Page Setup (Настройка страницы Печати)

    Система Visual FoxPro отображает стандартный или пользовательский Диалоговый бокс Page Setup, где выполняются настройки параметров печати Отчета. В данной версии добавлен новый параметр рассматриваемой функции nValue.

  • APRINTERS( ), Функция

    Возвращает "пяти-колоночный" массив, содержащий информацию об именах Принтеров, подсоединенных портах, драйверах, комментарии и размещение принтера. Последние три столбца становятся доступными при указании нового дополнительного параметра.

  • GETFONT( ), Функция

    Содержит дополнительную информацию и установки для настройки параметров печати принтера, а также программный интерфейс для Языка Скриптов.

См. дополнительно раздел Информация об Усовершенствованиях подсистемы Отчетов.

Expand imageСоздаваемые массивы могут иметь теперь более чем 65K Элементов

Вы можете создавать массивы, которые могут иметь более чем 65,000 элементов, например, когда используется команда DIMENSION определения массива. Обычные массивы теперь могут содержать до 2GB элементов. Массивы, содержащие ссылки на объекты ограничены по размеру 65,000 элементами.

NoteОбратите Внимание

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

Библиотека Library Construction Kit, которая содержит файлы Pro_Ext.h, WinAPIMS.lib, и OcxAPI.lib, по-прежнему имеет ограничения на размер  массива элементов, 65,000. См. дополнительно об этих файлах разделы: Доступ системы Visual FoxPro к механизму API, Как: Использовать в Visual FoxPro вызовы к функциям APIКак: Создавать и Отлаживать Библиотеки и Контролы ActiveX. Команда SAVE TO не поддерживает сохранение массивов, в которых больше элементов, чем 65,000.

См. дополнительно разделы: Системные возможности Visual FoxPro и DIMENSION, Команда.

Expand imageSTACKSIZE допускает установку Уровней вложенности до 64k

Для таких команд, как DO... , вы можете увеличить стандартное количество уровней вложенности, к 128 уровням добавить еще 32, и даже до   64,000 уровней вложенности; данная установка выполняется с помощью новой опции STACKSIZE, заданной в соответствующем конфигурационном файле Visual FoxPro.

NoteПримечание

Вы можете изменить допустимое количество уровней вложенности до старта системы Visual FoxPro, в файле конфигурации.

См. дополнительно разделы: Специальные установки файла Конфигурации и Системные возможности Visual FoxPro.

Expand imageРазмер программного или процедурного файла теперь не ограничен

В предыдущих версиях системы Visual FoxPro,  размер программного или процедурного файла (.PRG) был ограничен размеров в 65K. В настоящей версии Visual FoxPro сняты ограничения на размер процедурного или программного файла. См. дополнительно раздел Системные возможности Visual FoxPro.

Expand imageУстановка опции PROGCACHE в конфигурационном файле

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

Expand imageICASE( ), Функция

Новая функция ICASE( ) обеспечивает возможность оценивать несколько условий и возвращать соответствующий результат, в зависимости от заданных условий. См. дополнительно раздел ICASE( ), Функция.

Expand imageTTOC( ) Конвертирует данные типа DateTime в формат XML DateTime

Вы можете конвертировать выражения типа DateTime в соответствующую символьную строку формата XML DateTime, для этого используется новый дополнительный параметр со значением = 3 для функции TTOC( ). См. дополнительно раздел TTOC( ), Функция.

Expand imageSET COVERAGE , Команда, доступная теперь в режиме Run-Time

Команда SET COVERAGE была ранее недоступна в режиме run-time, отлаживать возможные ошибки можно было только в режиме Разработки.  См. дополнительно раздел SET COVERAGE , Команда.

Expand imageCLEAR ERROR , Команда

Появилась новая опция ERROR в команде CLEAR, обеспечивающая "заглушку" для возникшей ошибочной ситуации, для дальнейшей структурной обработки ошибки. Данный вариант команды (Clear Error) влияет на следующие функции:

  • Функция AERROR( ) возвращает значение = 0.

  • Функция ERROR( ) возвращает значение = 0.

  • Соответствующие функции: MESSAGE( ), MESSAGE(1) и SYS(2018) возвращают пустые строки.

Обычно, данный вариант команды CLEAR ERROR используется при структурной обработке ошибок,  в командах TRY...CATCH...FINALLY. См. дополнительно раздел CLEAR , Команды.

Expand imageСохранение установок диалогового бокса Options в Реестре Windows, с помощью SYS(3056)

Функция SYS(3056) может теперь использоваться для записи установок Диалогового бокса Options в соответствующих разделах Реестра ОС Windows.

SYS(3056 [, nValue ])

В следующей таблице описаны возможные варианты значений параметра nValue.

nValue Описание

1

Изменить только заданные параметры Реестра, исключая команды SET и опции размещения файлов.

2

Выполнить Полное сохранение параметров в Реестре Windows.

См. дополнительно раздел SYS(3056) - Прочитать Установки Реестра.

Expand imageFOR EACH ... ENDFOR, Команда, поддержка Типов Объектов

Теперь система Visual FoxPro поддерживает опцию FOXOBJECT для команды FOR EACH ... ENDFOR, которая обрабатывает базовые  Классы объектов Visual FoxPro.

FOR EACH objectVar [AS Type [OF ClassLibrary ]] IN Group FOXOBJECT

, Командаs

[EXIT]

[LOOP]

ENDFOR | NEXT [Var]

Ключевое слово FOXOBJECT расшифровывает параметр objectVar, как базовый объект Visual FoxPro. Опция FOXOBJECT относится только  к базовым коллекциям объектов Visual FoxPro, созданных на основе классов Collection. Коллекции объектов, построенные для внешних компонент COM не поддерживаются в опции FOXOBJECT.

См. дополнительно раздел FOR EACH ... ENDFOR , Команда.

Expand imageSET PATH, Команда, дополнительное расширение

Теперь в команде SET PATH поддерживается ключевое слово (опция) ADDITIVE. Данная опция ADDITIVE добавляет указанный путь поиска в конец списка путей команды SET PATH. Если задаваемый путь поиска уже существует в списке путей команды SET PATH, Visual FoxPro не выполняет добавления данного пути, и не изменяет порядок их размещения в списке. Задаваемые в ключевом слове ADDITIVE пути поиска могут заключаться в кавычки, и должны являться правильными символьными выражениями для поисковых путей.

Дополнительно, длина списка путей поиска в команде SET PATH увеличена до 4095 символов.

См. дополнительно раздел SET PATH, Команда.

Expand imageУправление триммингом символов в соответствующих функциях Trim

Теперь можно задавать символы, которые будут удаляться из символьных выражений с помощью функций TRIM( ), LTRIM( ), RTRIM( ), и ALLTRIM( ).

TRIM(cExpression[, nFlags] [, cParseChar [, cParseChar2 [, ...]]])

LTRIM(cExpression[, nFlags] [, cParseChar [, cParseChar2 [, ...]]])

RTRIM(cExpression[, nFlags] [, cParseChar [, cParseChar2 [, ...]]])

ALLTRIM(cExpression[, nFlags] [, cParseChar [, cParseChar2 [, ...]]])

Вы можете указать дополнительный Флаг case-insensitive (чувствительности к регистру)  удаляемых символов, как значение 0 или 1.

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

По-умолчанию, если параметр cParseChar не указан, то удаляются пробелы в начале или конце символьного выражения; или соответствующие нули (0 bytes) из данных типа Varbinary.

Удаление символов cParseChar выполняется в порядке их перечисления в параметрах функции. Когда сравнение найдено, происходит удаление его из выражения cExpression, и процесс повторяется с начального параметра cParseChar.

См. дополнительно разделы: TRIM( ), Функция, LTRIM( ), Функция, RTRIM( ), Функция, и ALLTRIM( ), Функция.

Expand imageALINES( ) - более гибкие механизмы выборки данных

Новый синтаксис функции ALINES( ) расширяет возможности выборки и обработки больших символьных массивов, например анализ чувствительности к Регистру данных (case-insensitive), или обработка пустых элементов массива. Данные дополнительные возможности обеспечиваются новым параметром функции nFlags, который заменяет третий параметр lTrim. См. дополнительно раздел ALINES( ), Функция.

Expand imageУлучшения в команде TEXT…ENDTEXT

Вы можете теперь использовать в команде TEXT…ENDTEXT новый параметр PRETEXT, с помощью которого удаляются прогоны строк из создаваемого текста. Новый параметр FLAGS управляет настройками вывода текста. См. дополнительно раздел TEXT ... ENDTEXT, Команда.

Expand imageВключение Разделителей в результаты функции STREXTRACT( )

Функция STREXTRACT( ) теперь имеет новый параметр nFlags, с помощью которого указываются символы-разделители в обрабатываемых символьных выражениях. См. дополнительно раздел STREXTRACT( ), Функция.

Expand imageSTRCONV( ) расширена параметрами Code Page и FontCharSet

Теперь, в качестве параметров функции используются дополнительные Code Page или Fontcharset, которые улучшают функциональность проводимых преобразований. См. дополнительно раздел STRCONV( ), Функция.

Expand imageTYPE( ) теперь определяет, является ли указанный параметр - Массивом

Теперь функция TYPE( ) принимает дополнительный параметр, 1,  с помощью которого оценивается заданное выражение, является ли оно массивом.

Type(cExpression, 1)

Функция возвращает следующие значения при задании дополнительного параметра в функции, 1.

Возвращаемое значение Описание

A

cExpression - есть массив.

U

cExpression - не является массивом.

C

cExpression - является Коллекцией.

cExpression - должно задаваться как символьная строка.

См. дополнительно раздел TYPE( ), Функция.

Expand imageBINTOC( ) и CTOBIN( ) имеют теперь дополнительные возможности Преобразования Данных

Функции BINTOC( ) и CTOBIN( ) имеют некоторые изменения и улучшения синтаксиса, что значительно улучшает качество получаемых результатов. Дополнительно, указанные нововведения значительно улучшают интерфейс с функциями Win32 API. См. дополнительно разделы:  BINTOC( ), Функция и CTOBIN( ), Функция.

Expand imageMROW( ) и MCOL( ) могут теперь определить позицию указателя манипулятора Мышь

Теперь функции MROW( ) и MCOL( ) имеют дополнительный параметр (0), который позволяет определять позицию указателя мыши для текущего активного окна, которое ранее нужно было определять с помощью функции WOUTPUT( ). Хотя, обычно, им является текущая активная Форма; если для этой формы задано свойство AllowOutput = False (.F.), то функция WOUTPUT( ) не возвращает для указанной формы характеристику ее активности (как окна). Данное явление может привести к неправильным результатам, возвращаемым указанными функциями. При использовании указанного параметра, (0), вы можете надежно обрабатывать позиционные характеристики мышки, например при указании координат активации меню типа Shortcut, в соответствие с активной формой, (координаты меню задаются более точно).

См. дополнительно раздел MROW( ), Функция and MCOL( ), Функция.

Expand imageINPUTBOX( ) теперь обрабатывает нажатие кнопки Отмена

В настоящей редакции функция INPUTBOX( ) имеет дополнительный параметр, описывающий, как обрабатывать нажатие кнопки <Отмена> в соответствующем диалоговом боксе. См. дополнительно раздел INPUTBOX( ), Функция.

Expand imageAGETCLASS( ) теперь поддерживается для приложений в режиме Run-time

Теперь функция AGETCLASS( ) поддерживается для приложений, выполняемых в режиме run-time. См. дополнительно раздел AGETCLASS( ), Функция.

Expand imageSYS(2019), расширенное управление файлами Конфигурации

Вы можете использовать функцию SYS(2019), для определения имени и расположения как внутренних, так и внешних файлов Конфигурации системы Visual FoxPro. См. дополнительно раздел SYS(2019) - Имя и Размещение файла Конфигурации.

Expand imageSYS(2910) , управление количеством отображаемых пунктов в Списках

Вы можете управлять теперь количеством отображаемых пунктов в списках типа drop-down, которое может использоваться при использовании AutoComplete, Свойствоy. Данное значение доступно также в Закладка View, Диалоговый бокс Options, при открытии соответствующего  Диалоговый бокс Options (Visual FoxPro).

См. дополнительно раздел SYS(2910) - Размер списка List.

Expand imageSYS(3008), отключение использования Hyperlink Tip

Система Visual FoxPro обычно отображает следующий текст "CTRL+Click to follow the link", когда указатель мышки находится над соответствующей гиперссылкой hyperlink. Если указанный эффект считается лишним, то можно его отключить с помощью функции SYS(3008). Данная функция может быть использована также в интернациональных приложениях, чтобы заблокировать вывод на экран подсказок на Английском языке. См. дополнительно раздел SYS(3008) - Подсказки Hyperlink.

Expand imageSYS(3065) , внутренний Программный Кэш

Вы можете получить значение (размер) внутреннего программного Кэша (значение параметра PROGCACHE в файле конфигурации). См. дополнительно раздел SYS(3065) - Внутренний программный Кэш.

Expand imageSYS(3101), преобразование COM Code Page

Теперь вы можете задать code page при приеме/передаче данных, или преобразовании данных во время взаимодействия с внешними объектами COM. См. дополнительно раздел SYS(3101) - COM Code Page Translation.

Expand imageДвойственная поддержка для подсказок типа Tooltips или Popups

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

  • SYS(3009) - выравнивание подсказок типа ToolTips по правому краю.

  • DEFINE POPUP…RTLJUSTIFY - "правое выравнивание" пунктов меню типа popup, или соответствующих shortcut menu.

  • SET SYSMENU TO RTLJUSTIFY - "правое выравнивание" пунктов  Системного меню

Функция SYS(3009) выполняет глобальную установку расположения текста подсказок. См. дополнительно разделы SYS(3009) - Bidirectional Text Justification for ToolTips, DEFINE POPUP , Команда и SET SYSMENU , Команда.

Expand imageРасширенная поддержка Font Script

Система Visual FoxPro 9.0 содержит несколько расширений по поддержке функциональности Font Language Script (или FontCharSet), с помощью которых можно управлять Шрифтами Контролов:

  • SYS(3007) - определение FontCharSet для подсказок ToolTips. Выполняется глобальная установка.

  • Опция FONT  -  в следующей таблице представлены команды, в которых может использоваться данная опция, задаваемая следующим синтаксическим правилом:

    FONT cFontName [, nFontSize [, nFontCharSet]]

    Команда

    DEFINE MENU

    DEFINE POPUP

    DEFINE BAR

    DEFINE PAD

    DEFINE WINDOW

    MODIFY WINDOW

    BROWSE/EDIT/CHANGE

    ?/??

  • Browse - имеет соответствующий Диалоговый бокс Font, который вызывается при выборе Пункта меню Font из соответствующего Меню Table, которое определяется системным Окном Browse . Вы можете выполнить также глобальную установку в Закладке IDE, Диалоговый бокс Options, в соответствующем  Диалоговом боксе Options (Visual FoxPro). Для этого нужно отметить соответствующий Контрол Use font script.

  • Editors - в соответствующем Диалоговом боксе Font , который вызывается при выборе Пункта меню Font из соответствующего Меню Format , или выполнив "right-click" для активации короткого меню Диалоговый бокс Edit Properties, в котором задается соответствующий шрифт для выбранного языка приложения. Вы можете также выполнить глобальную установку необходимого шрифта в соответствующем Закладка IDE, диалоговый бокс Options , которая находится в Диалоговом боксе Options (Visual FoxPro). Для этого нужно определить соответствующий контрол Use font script.

См. дополнительно разделы: SYS(3007) - ToolTipText, свойство определения Font Language Script, Закладка IDE, диалоговый бокс Options, и FontCharSet, свойство.

Expand imageКонтрол ToolTip Timeout

Вы можете определить длительность отображения подсказки типа ToolTip. См. дополнительно раздел _TOOLTIPTIMEOUT, системная переменная.

Expand imageФункциональность для Tablet PC

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

  • ISPEN( ) - определяет, как обрабатывается в приложении Visual FoxProсобытия манипулятора мыши для компьютеров Tablet PC.

  • _SCREEN.DisplayOrientation - данное свойство определяет ориентацию главного окна системы или приложения, запущенного на компьютере типа Tablet PC. Обычно определяется текущая установка данного свойства.

  • _TOOLTIPTIMEOUT - определяет длительность отображения подсказки типа ToolTip, появляющейся слева от указателя мышки.

См. дополнительно раздел ISPEN( ), Функция, DisplayOrientation, свойство, и _TOOLTIPTIMEOUT, системная переменная.

Expand imageУправление Событиями Сообщений Windows

Теперь Visual FoxPro позволяет перехватывать и обрабатывать соответствующие системные сообщения между Окнами Microsoft® Windows®,  с помощью функции BINDEVENT. Вот несколько примеров, где можно управлять сообщениями:

  • Широковещательное сообщение о переходе рабочей станции в режим StandBy или полном выключении компьютера.

  • Обработка события смены носителей информации, например: установка или извлечение носителя CD из дисковода.

  • Вставка или удаления специального носителя информации типа Plug and Play (например, как устройство USB-Drive).

  • Перехват запросов подсистемы screen saver, для активации режима этих подсистем.

  • Обработка событий Операционной системы: изменение Шрифтов или Схем Windows XP.

  • Обработка событий ОС по добавлению или удалению сетевых накопителей информации network connections.

  • Перехват переключений между запущенными Приложениями.

Для этих операций используется функция Visual FoxPro BINDEVENT,  которая регистрирует или снимает с контроля  порождаемые системные Сообщения (например, сообщения для системных окон Win32 API, обрабатываемые соответствующими функциями Win32 WindowProc). См. дополнительно соответствующие разделы в MSDN.

В новый синтаксис функции BINDEVENT( ) введен параметр hWnd (целое число), рассматриваемый как дескриптор соответствующего системного окна, перехват события которого планируется выполнить. Например, При выключении компьютера или перевода его в режим standby появляется соответствующее системное окно Win32 WM_POWERBROADCAST (значение дескриптора окна = 536).

BINDEVENT(hWnd, nMessage, oEventHandler, cDelegate)

В следующем примере демонстрируется обработка системного события при смене Схемы Windows XP:

 CopyCode imageКопировать Код
#DEFINE WM_THEMECHANGED    0x031A
#DEFINE GWL_WNDPROC (-4)
PUBLIC oHandler
oHandler=CREATEOBJECT("AppState")
BINDEVENT(_SCREEN.hWnd, WM_THEMECHANGED, oHandler, "HandleEvent")
MESSAGEBOX("Test by changing Themes.")
DEFINE CLASS AppState AS Custom
nOldProc=0
PROCEDURE Destroy
UNBINDEVENT(_SCREEN.hWnd, WM_THEMECHANGED)
ENDPROC
PROCEDURE Init
DECLARE integer GetWindowLong IN WIN32API ;
integer hWnd, ;
integer nIndex
DECLARE integer CallWindowProc IN WIN32API ;
integer lpPrevWndFunc, ;
integer hWnd,integer Msg,;
integer wParam,;
integer lParam
THIS.nOldProc=GetWindowLong(_VFP.HWnd,GWL_WNDPROC)
ENDPROC
PROCEDURE HandleEvent(hWnd as Integer, Msg as Integer, ;
wParam as Integer, lParam as Integer)
lResult=0
IF msg=WM_THEMECHANGED
MESSAGEBOX("Theme changed...")
ENDIF
lResult=CallWindowProc(this.nOldProc,hWnd,msg,wParam,lParam)
RETURN lResult
ENDPROC
ENDDEFINE

Для обработки сообщений системных окон используются также следующие функции SYS( ):

  • SYS(2325) - возвращает дескриптор дочернего окна hWnd на основании заданного дескриптора родительского окна WHANDLE.

  • SYS(2326) - возвращает дескриптор Visual FoxPro WHANDLE из заданного дескриптора окна hWnd.

  • SYS(2327) - возвращает дескриптор окна hWnd from из заданного дескриптора Visual FoxPro WHANDLE.

См. дополнительную информацию в разделах BINDEVENT( ), Функция, UNBINDEVENTS( ), Функция, и AEVENTS( ), Функция. См. также SYS(2325) - WCLIENTWINDOW from Visual FoxPro WHANDLE, SYS(2326) - WHANDLE from a Window's hWnd, и SYS(2327) - Window's hWnd from Visual FoxPro WHANDLE . Подробная информация расположена в соответствующих разделах MSDN.

Expand imageСм. также