Новости



Visual FoxPro 9 позволяет создавать ещё более производительные приложения баз данных.
Двадцатиление FoxPro! Microsoft принимает поздравления.
Visual FoxPro Toolkit for .NET - более 225 функций VFP 7.0, для языков .NET (подробнее)

Команда @ ... GET - поля текста

См. также

Создает текстовое поле. Включена для совместимости с предыдущими версиями. Для приложений Visual FoxPro следует использовать элемент управления TextBox.

Синтаксис

@ nRow, nColumn
GET MemVarName | FieldName
[FUNCTION cFormatCodes]
[PICTURE cFormatCodes]
[NAME ObjectName]
[FONT cFontName [, nFontSize]]
[STYLE cFontStyle]
[DEFAULT Expression]
[ENABLE | DISABLE]
[MESSAGE cMessageText]
[[OPEN] WINDOW WindowName]
[RANGE [LowerBound] [, UpperBound]]
[SIZE nHeight, nWidth]
[VALID lExpression1 | nExpression [ERROR cErrorText]]
[WHEN lExpression2]
[COLOR SCHEME nSchemeNumber
| COLOR ColorPairList]

Параметры

@ nRow, nColumn

Задает позицию текстового поля.

Строки нумеруются сверху вниз. Первая строка имеет номер 0 в основном окне Visual FoxPro или в окне, определенном пользователем.

fox90000.gif В Visual FoxPro строка 0 fox90001.gif это строка, расположенная непосредственно под системной строкой меню Visual FoxPro.

fox90000.gif В FoxPro для Macintosh строка 0 fox90001.gif это строка, расположенная непосредственно под строкой заголовка FoxPro.

fox90000.gif В FoxPro для MS-DOS строка 0 fox90001.gif это строка, которую занимает системная строка меню FoxPro. О том, как, манипу ируя системной строкой меню, размещать в FoxPro для MS-DOS текстовые поля в ст оке 0, см. SET SYSMENU.

Столбцы нумеруются слева направо. Первый столбец имеет номер 0 в основном окне Visual FoxPro или пользовательском окне.

Когда текстовое поле помещается в пользовательское окно, его координаты по ст окам и столбцам берутся относительно этого пользовательского окна, а не основ ого окна Visual FoxPro.

fox90000.gif В Visual FoxPro и FoxPro для Macintosh позиция в основном окне Visual FoxPro и и в пользовательском окне определяется шрифтом этого окна. Большинство шрифтов допускают множество вариантов с различными размерами, а некоторые из них имеют пропорциональные промежутки. Номер строки зависит от высоты текущего шрифта, а номер столбца fox90001.gif от средней ширины буквы в текущем шрифте.

fox90000.gif В Visual FoxPro и FoxPro для Macintosh позицию текстового поля в окне можно за авать дробными значениями координат по строкам и столбцам.

fox90000.gif В FoxPro для MS-DOS десятичные дробные значения, используемые в качестве коор инат по строкам и столбцам, округляются до ближайшего целого числа.

GET MemVarName | FieldName

Задает переменную памяти, элемент массива или поле, для которых команда @... GET создает текстовое поле.

Совет Редактировать memo-поля лучше с помощью команды @... EDIT, а не @... GET. Команда @... EDIT создает окно редактирования текста с полосой прокрутки, и при в даче команды @... EDIT отображается содержимое memo-поля.

FUNCTION cFormatCodes | PICTURE cFormatCodes

Задает функциональный код или код шаблона, который определяет, в каком виде со ержимое текстового поля будет отображаться на дисплее или на печати. Для созда ия маски редактирования можно включить предложение FUNCTION, предложение PICTURE или оба эти предложения. Они содержат специальные коды, которые управляют отображением и редактированием переменной памяти, элемента массива или поля.

Коды FUNCTION могут быть включены в предложение PICTURE. В этом случае пред ожение PICTURE должно начинаться с символа @. Кроме него предложение PICTURE может содержать коды FUNCTION, коды PICTURE или те и другие. Поскольку предложение FUNCTION влияет на все выражение, оно может содержать только коды FUNCTION.

Код FUNCTION
Назначение
A
Разрешает использовать только буквенные символы (без пробелов и знаков препина ия).
B
Выравнивает данные влево в текстовом поле.
D
Задает использование текущего формата даты согласно установке SET DATE.
E
Редактирует даты как даты типа BRITISH.
I
Центрирует текст в текстовом поле.
J
Выравнивает данные вправо в текстовом поле.
K
Выделяет все текстовое поле целиком, когда в него переходит курсор.
L
Отображает в текстовом поле начальные нули (вместо пробелов). Используется то ько для числовых данных.
MList
Создает список предварительно подготовленных элементов на выбор. List представляет собой совокупность элементов, перечисленных через запятую. Внут и любого отдельного элемента списка нельзя использовать запятые. Если перемен ая памяти MemVarName или поле FieldName первоначально при выдаче команды READ не содержали какого-либо элемента из того списка, то отображается первый элемент списка. Чтобы пролистать список, ажимайте клавишу Spacebar или введите первую букву элемента. Чтобы выбрать один из элементов списка и перейти к следующему элементу управления, нажмите клавишу Enter. Используется только для символьных данных.
R
Отображает в текстовом поле символы маски формата. Символы этой маски не сохра яются в текстовом поле при выходе из него. Используется только для символьных или числовых данных.
Sn
Ограничивает размер текстового поля n символами. Вы можете прокручивать содержимое области с помощью клавиш управле ия курсором. Используется только для символьных данных.
T
Отбрасывает начальные и конечные пробелы в переменной памяти MemVarName или поле FieldName.
Z
Отображает переменную памяти MemVarName или поле FieldName в виде пробелов, если их числовое значение равно 0. Используется только для числовых данных.
!
Переводит строчные буквы в верхний регистр. Используется только для символьных данных.
^
Отображает числовые данные в экспоненциальном представлении. Используется то ько для числовых данных.
$
Отображает перед числовыми данными символ денежной единицы. Используется то ько для числовых данных.

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

Код PICTURE
Назначение
A
Разрешает ввод только алфавитных символов.
L
Разрешает ввод только логических данных.
N
Разрешает ввод только букв и цифр.
X
Разрешает ввод любых символов.
Y
Разрешает в качестве эквивалентов логических значений "истина" (.T.) и "ложь" (.F.) вводить соответственно Y, y, N и n.
9
Разрешает вводить в символьных данных любые цифры. Разрешает вводить в числов х данных цифры и знаки.
#
Разрешает ввод цифр, пробелов и знаков.
!
Преобразует строчные буквы в прописные.
$
Отображает текущий символ денежной единицы, заданный установкой SET CURRENCY. По умолчанию этот символ ставится непосредственно перед числовым значением или после него. Однако символ денежной единицы и его позицию (заданные установкой SET CURRENCY), а также символ-разделитель (заданный установкой SET SEPARATOR) и символ десятичного разделителя (заданный установкой SET POINT) можно изменить. Используется только с числовыми данными.
*
Отображает звездочки впереди числового значения. Используйте вместе со знаком оллара ($) для защиты чеков.
.
Точка задает позицию десятичного разделителя.
,
Запятая используется для разделения групп цифр слева от десятичного разделите я.

NAME ObjectName

Допустимо только в Visual FoxPro.

Создает ссылку на текстовое поле как на объект, что позволяет манипулировать тим текстовым полем, используя объектно-ориентированные свойства элемента управ ения TextBox. Подробнее о манипулировании элементами управления FoxPro с помощью предложения NAME см. Элементы управления и объекты.

FONT cFontName [, nFontSize]

Допустимо только в Visual FoxPro и FoxPro для Macintosh.

Задает шрифт для текстового поля и размер шрифта. cFontName задает имя шрифта, а nFontSize fox90001.gif его размер в пунктах.

В качестве примера рассмотрим следующую небольшую программу, отображающую поле CONTACT для редактирования. В Visual FoxPro и FoxPro для Macintosh текст этого текстового поля отображается с помощью 12-пунктового шрифта Courier:

CLOSE DATABASES

USE customer

DO CASE

CASE _WINDOWS OR _MAC

@ 2, 2 GET contact FONT 'Courier',12

OTHERWISE

@ 2, 2 GET contact

ENDCASE

READ

Если предложение FONT опущено и текстовое поле размещается в основном окне Visual FoxPro, используется шрифт основного окна Visual FoxPro. Если предложение FONT опущено и текстовое поле размещается в пользовательском окне, используется шрифт этого пользовательского окна.

Если вы задали предложение FONT, опустив размер шрифта cFontSize, используется размер 10 пунктов.

fox90000.gif Если в Visual FoxPro заданный шрифт отсутствует, его заменяет шрифт с похожими характеристиками.

fox90000.gif Если в FoxPro для Macintosh заданный шрифт отсутствует, используется шрифт Chicago.

fox90000.gif В FoxPro для MS-DOS предложение FONT игнорируется.

STYLE cFontStyle

Допустимо только в Visual FoxPro и FoxPro для Macintosh.

Задает стиль шрифта для текстового поля. Если предложение STYLE опущено, испо ьзуется стиль Normal (нормальный).

fox90000.gif Если в Visual FoxPro заданный стиль шрифта отсутствует, его заменяет стиль с похожими характеристиками.

fox90000.gif Если в FoxPro для Macintosh заданный стиль отсутствует, используется стиль Normal.

fox90000.gif В FoxPro для MS-DOS предложение STYLE игнорируется.

В качестве cFontStyle можно задавать следующие стили шрифтов:

Символ
Стиль шрифта
B
Bold (Полужирный)
C
Condense (Уплотненный; только в FoxPro для Macintosh)
E
Extend (Расширенный; только в FoxPro для Macintosh)
I
Italic (Курсив)
N
Normal (Нормальный)
O
Outline (Контурный)
Q
Opaque (Непрозрачный)
S
Shadow (Затененный)
-
Strikeout (Перечеркнутый; только в Visual FoxPro)
T
Transparent (Прозрачный)
U
Underline (Подчеркнутый)

Если вы задали T и хотите создать прозрачное текстовое поле, данная область бу ет игнорировать цвет фона.

Можно указать сразу несколько символов, задав комбинацию стилей. Например, сле ующая небольшая программа создает текстовое поле; в нем отображается соде жимое поля CONTACT полужирным курсивом (Bold Italic).

CLOSE DATABASES

CLEAR

USE customer

DO CASE

CASE _WINDOWS OR _MAC

@ 2, 2 GET contact STYLE 'BI'

OTHERWISE

@ 2, 2 GET contact

ENDCASE

READ

DEFAULT Expression1

Если вы задали для текстового поля несуществующую переменную памяти, она будет автоматически создана и проинициализирована при условии, что включено предложе ие DEFAULT. Однако если в предложении DEFAULT задать элемент массива, он не бу ет создаваться. Если переменная памяти уже существует или если вы задаете по е, предложение DEFAULT игнорируется.

Замечание Если предложение DEFAULT опущено и переменная памяти MemVarName не существует, Visual FoxPro сгенерирует сообщение об ошибке.

Выражение Expression1 определяет тип создаваемой переменной памяти и ее начальное значение.

ENABLE

Делает текстовое поле доступным. По умолчанию текстовые поля становятся доступ ыми при выдаче команды READ. Вы можете включить предложение ENABLE в программу для напоминания о том, что текстовым полем можно пользоваться.

DISABLE

Запрещает пользователю доступ к текстовому полю при выдаче команды READ. Не оступное текстовое поле изображается определенными для данного состояния цветами и не может быть выбрано.

Замечание Если в пользовательском окне все текстовые поля недоступны, окно не может оставаться на переднем плане. Если все текстовые поля в текущей команде READ опре елены как недоступные, выполнение команды READ прекращается.

MESSAGE cMessageText

Создает сообщение, которое выдается при выборе текстового поля.

В Visual FoxPro и FoxPro для Macintosh сообщение выводится в графической ст оке состояния. Если графическая строка состояния была отключена с помощью команды SET STATUS BAR OFF, сообщение располагается в последней строке основного окна Visual FoxPro.

В FoxPro для MS-DOS сообщение размещается в центре последней строки основного окна FoxPro и временно отменяет действие установки SET MESSAGE.

[OPEN] WINDOW WindowName

Предложение OPEN WINDOW включено для совместимости с предыдущими версиями. Используйте вместо него команду @... EDIT.

Позволяет редактировать memo-поле в пользовательском окне. Это пользовате ьское окно предварительно нужно создать с помощью команды DEFINE WINDOW. При выдаче команды @... GET WINDOW отображается слово Memo.

Если задано предложение OPEN, то при выдаче команды READ или READ CYCLE автоматически открывается окно редактирования memo-поля.

Совет Memo-поля лучше редактировать с помощью команды @... EDIT, а не @... GET. Команда @... EDIT создает текстовое поле с полосой прокрутки, и при выдаче команд @... EDIT отображается содержимое memo-поля.

RANGE [LowerBound] [, UpperBound]

Задает диапазон допустимых значений, которые пользователь может вводить в текстовом поле. Если в текстовое поле введено значение, не принадлежащее заданному иапазону, выдается сообщение, указывающее правильный диапазон. Чтобы отменить выдачу такого сообщения, используйте команду ON READERROR.

LowerBound задает нижнюю границу диапазона, а UpperBound fox90001.gif верхнюю границу. В качестве LowerBound и UpperBound следует использовать выражения типов Date, DateTime, Character, Numeric, Float, Double или Currency, которые соответствуют типу данных в переменной памяти, лементе массива или поле. Можно опустить аргумент LowerBound или UpperBound, но не оба. Если какая-либо граница не указана, для введенных данных прове яется соблюдение только другой, заданной границы.

Замечание Если вы нажали клавишу Enter, не изменив содержимого переменной памяти, элемента массива или поля, принад ежность диапазону не проверяется.

SIZE nHeight, nWidth

Задает высоту и ширину текстового поля. По умолчанию текстовое поле имеет в соту в одну строку. Размер области определяется длиной переменной памяти, элеме та массива или поля либо предложением PICTURE.

nHeight задает высоту текстового поля в строках, а nWidth fox90001.gif его ширину в столбцах.

В Visual FoxPro и FoxPro для Macintosh размер текстового поля определяется ш ифтом текстового поля, который задан в предложении FONT. Если предложение FONT опущено, в текстовом поле используется шрифт его родительского окна (основного окна Visual FoxPro или пользовательского окна).

VALID lExpression1 | nExpression [ERROR cErrorText]

Проверяет достоверность пользовательского ввода. Когда пользователь пытается в йти из текстового поля, вычисляется выражение предложения VALID.

Предложение VALID значительно упрощает процедуру проверки достоверности данн х, если в нем задана пользовательская функция. Пользовательская функция, выз ваемая в предложении VALID команды @... GET, должна возвращать логическое или чис овое значение.

Замечание В отличие от предложения RANGE, предложение VALID всегда выполняется при в ходе из текстового поля, если только вы не нажали клавишу Esc. Предложение RANGE выполняется только при внесении изменения в переменную памяти, элемент массива или поле.

lExpression1

Если вычисление выражения lExpression1 дает значение "истина" (.T.), данные в текстовом поле считаются корректными и происходит выход из текстового поля.

Если lExpression1 имеет значение "ложь" (.F.), данные в текстовом поле считаются некорректными и выдается сообщение, предлагающее пользователю заново ввести данные, нажав пе ед этим клавишу пробел.

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

nExpression

Определяет, какой элемент управления активизируется после того, как пользовате ь выходит из текстового поля. Сведения об элементах управления см. в Элементы управления и объекты. Числовое выражение nExpression определяет одну из следующих трех ситуаций.

fox90000.gif Если значение nExpression равно 0, курсор остается в текстовом поле. Сообщения об ошибках MESSAGE cMessageText и ERROR cErrorText не выдаются. В состав пользовательской функции, вызываемой предложением VALID, можно включить специально составленную программу выдачи сообщений об ошибках.

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

fox90000.gif Если значение nExpression положительно, оно задает количество элементов управления, на которое следует сдвинуться. Например, если курсор устанавливается в текстовом поле и VALID возв ащает 1, активизируется следующий элемент управления. Если значение nExpression больше числа оставшихся элементов управления, команда READ прекращается (если только не выдана команда READ CYCLE, активизирующая элементы управления).

fox90000.gif Если значение nExpression отрицательно, оно задает количество элементов управления, на которое нужно ве нуться. Например, если курсор устанавливается в текстовом поле и VALID возв ащает fox90002.gif1, активизируется предыдущий элемент управления. Если nExpression задает возврат далее первого элемента управления, команда READ прекращается (если только не выдана команда READ CYCLE, активизирующая элементы управления).

ERROR cErrorText

Задает текст сообщения об ошибке, которое должно выдаваться, когда выражение VALID имеет значение "ложь" (.F.). Visual FoxPro выдает сообщение cErrorText вместо используемого по умолчанию сообщения об ошибке.

WHEN lExpression2

Разрешает или запрещает доступ к текстовому полю, исходя из значения выражения lExpression2: оно должно быть "истиной" (.T.), чтобы текстовое поле было доступно. Если п едложение WHEN задано и выражение lExpression2 имеет значение "ложь" (.F.), доступ к текстовому полю невозможен и активизи уется следующий элемент управления.

COLOR SCHEME nSchemeNumber

Задает цвета для текстового поля. Если предложение COLOR SCHEME опущено, цвет текстового поля определяется цветовой схемой основного окна Visual FoxPro. Если текстовое поле предназначено для пользовательского окна, его цвет определяется цветовой схемой этого окна.

COLOR ColorPairList

Задает цвета для текстового поля. Цвет определяется только первой цветовой па ой в списке цветовых пар.

Цвета текстового поля определяются только цветовыми парами 2, 5, 6 и 10 цветовой схемы или списка цветовых пар.

Номер цветовой пары
Атрибут текстового поля
2
Текстовое поле
5
Сообщение
6
Выбранное текстовое поле
10
Недоступное текстовое поле

Подробнее о цветовых схемах и цветовых парах см. Использование цветов.

Комментарии

В Visual FoxPro текстовые поля следует создавать с помощью конструктора форм или DEFINE CLASS. Подробнее о совместимости с элементами управления предыдущих версий FoxPro 2.x см. Элементы управления и объекты.

Подробнее о добавлении элементов управления к форме см. главу 9 "Создание фо м" Руководства разработчика и Добавление объекта в контейнерный класс.

Команда @... GET используется для создания текстового поля, отображающего соде жимое переменной памяти, элемента массива или поля. Для активизации текстовых полей используйте команду READ или READ CYCLE.

Можно объединить @... SAY и @... GET в одну команду. Если заданы оба предложе ия SAY и GET, укажите один набор координат nRow, nColumn, обозначающий позицию начала вывода @... SAY. Между выводом команды @... SAY и текстовым полем автоматически вставляется пробел.



Новое на сайте

  • Обновлен портфель программиста

    Добавлены: Установка HTML Help (Создание справочной системы), Imagedit.zip - Графический редактор ( ico и bmp), Библиотека локализации HTML Help (Русский)
  • Новые примеры программ

    Установка библиотек, Игровая программа "Охота на лис", Установка библиотек "Охота на лис", plastic -"Платежки", Библиотеки (на FPD26), platan -"Платежки" (на Clipper 5.2)
  • Обновленна справка

    Подсказки, технология программирования и использование Visual FoxPro. Команды, функции, операторы, объекты, свойства, события и методы.