Новости



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

Команда @ ... EDIT - поля редактирования

См. также

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

Синтаксис

@ nRow, nColumn
EDIT MemVarName | FieldName
SIZE nHeight, nWidth [, nCharacters]
[NAME ObjectName]
[FUNCTION cFormatCodes]
[FONT cFontName [, nFontSize]]
[STYLE cFontStyle]
[DEFAULT cExpression]
[ENABLE | DISABLE]
[MESSAGE cMessageText]
[VALID lExpression1 | nExpression [ERROR cErrorText]]
[WHEN lExpression2]
[NOMODIFY]
[SCROLL]
[TAB]
[COLOR SCHEME nSchemeNumber
| COLOR ColorPairList]

Параметры

@ nRow, nColumn

Задает позицию поля редактирования. Числовые выражения nRow и nColumn задают координаты левого верхнего угла поля редактирования.

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

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

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

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

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

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

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

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

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

EDIT MemVarName | FieldName

Задает переменную памяти, элемент массива, поле или memo-поле символьного типа, в котором следует сохранять результаты редактирования. Когда поле редактирова ия активизируется по команде READ или READ CYCLE, содержимое MemVarName или FieldName отображается в поле редактирования и может обрабатываться. При выходе из поля редактирования все изменения могут быть сохранены в данной переменной памяти, лементе массива, поле или memo-поле.

SIZE nHeight, nWidth [, nCharacters]

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

Если значение nHeight равно 1, создается специальное поле редактирования из одной строки. Такую об асть можно прокручивать по горизонтали. Нажав клавишу Enter, вы перейдете к следующему элементу управления.

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

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

NAME ObjectName

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

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

FUNCTION cFormatCodes

Задает тип выравнивания текста в поле редактирования и внешний вид поля ре актирования. Опции I и J данного предложения определяют, как выравнивается текст, а опции 2 и 3 задают внешний вид поля редактирования. Опции 2 и 3 допустимы то ько в FoxPro для Macintosh. Любые другие символы, включенные в предложение FUNCTION, игнорируются.

Опция
Назначение
I
Центрирует текст в поле редактирования.
J
Выравнивает текст вправо. По умолчанию текст в поле редактирования вырав ивается влево.
2
Создает плоское (двумерное) поле редактирования. Такой вид поля редактирования используется по умолчанию в FoxPro для Macintosh.
3
Создает трехмерное поле редактирования, идентичное полям редактирования FoxPro для Macintosh.

В приведенном ниже примере создается поле редактирования, в котором текст вы авнивается вправо:

STORE 'This will be edited' TO gcText

@ 2,2 EDIT gcText FUNCTION 'J' SIZE 5, 50

READ

В следующем примере создается трехмерное поле редактирования для FoxPro для Macintosh:

STORE 'This will be edited' TO gcText

@ 2,2 EDIT gcText FUNCTION '3' SIZE 5, 50

READ

FONT cFontName [, nFontSize]

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

Задает шрифт для текста, отображаемого в поле редактирования. cFontName задает имя шрифта, а nFontSize fox90001.gif его размер в пунктах. Например, следующее предложение определяет отображение текста в поле редактирования с использованием 16-пунктового шрифта Courier:

FONT 'Courier', 16

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

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

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

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

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

STYLE cFontStyle

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

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

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

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

В 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 (Подчеркнутый)

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

STYLE 'BI'

DEFAULT cExpression

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

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

Ниже приведены примеры использования предложения DEFAULT в полях редактирова ия:

@ 2,2 EDIT gcText DEFAULT 'This will be edited' SIZE 5, 50

READ

@ 2,2 EDIT gcText DEFAULT SPACE(20) SIZE 5, 50

READ

ENABLE

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

DISABLE

Запрещает активизацию поля редактирования при выдаче команды READ. Когда поле едактирования не активно, оно изображается определенными для данного состояния цветами и не может быть выбрано. Чтобы сделать недоступное поле редактирования доступным, используйте команду SHOW GET ENABLE.

MESSAGE cMessageText

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

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

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

VALID lExpression1 | nExpression

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

Обычно в качестве lExpression1 или nExpression задается пользовательская функция. Такая функция позволяет выбирать другие э ементы управления, делать их доступными и недоступными, открывать окно просмот а или еще одну форму для ввода данных, переходить к новой записи. В состав по ьзовательской функции может быть включена команда CLEAR READ, прекращающая выпол ение команды READ.

lExpression1

Если выражение lExpression1 имеет значение "истина" (.T.), изменения сохраняются, когда пользователь выхо ит из поля редактирования, нажимая клавиши TAB, CTRL+TAB или SHIFT+TAB. Если пользователь нажимает клавишу ESC, изменения аннулируются.

Если пользователь нажимает Tab, Ctrl+Tab или Shift+Tab, чтобы сохранить изменения в memo-поле, а выражение lExpression1 имеет значение "ложь" (.F.), появляется сообщение, предлагающее пользователю ввести правильные данные. Если пользователь после этого нажмет клавишу Esc, чтобы выйти из поля редактирования, изменения будут сохранены.

Если выражение lExpression1 имеет значение "ложь" и пользователь редактирует переменную памяти, элемент массива или поле, то при нажатии клавиши Esc произойдет выход из поля редактирования и изменения будут аннулированы.

nExpression

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

Выражение nExpression определяет одну из трех следующих ситуаций.

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

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

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

ERROR cErrorText

Позволяет задавать текст сообщения об ошибке, отличный от используемого по умо чанию. Когда выражение lExpression1 предложения VALID имеет значение "ложь" (.F.), по умолчанию выдается сообще ие "Invalid Input" [Неправильный ввод].

WHEN lExpression2

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

NOMODIFY

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

SCROLL

Помещает справа от поля редактирования полосу прокручивания. Она отображается а экране только в том случае, если текст слишком длинный и не помещается в по е редактирования.

TAB

Определяет, что при нажатии клавиши Tab в тексте в текущей позиции курсора вставляется табулятор. Если предложение TAB опущено, при нажатии клавиши TAB табулятор не вставляется. Нажимая клавиши TAB или CTRL+TAB, пользователь сохраняет внесенные изменения, выходит из поля редактирования и переносит фокус в следующий элемент управления.

COLOR SCHEME nSchemeNumber

Задает цвета поля редактирования. По умолчанию цвета полей редактирования фо мируются на основе цветовой схемы 2 (пользовательские меню). Если вы не задали п едложение COLOR, цвета поля редактирования определяются цветовой схемой основ ого окна Visual FoxPro. Если поле редактирования предназначается для пользовате ьского окна, цвета поля редактирования определяет цветовая схема этого окна.

COLOR ColorPairList

Задает цвет поля редактирования.

Номер цветовой пары
Атрибут области редактирования
2
Доступное поле редактирования
3
Полоса прокрутки*
5
Сообщение
6
Выбранное поле редактирования
10
Недоступное поле редактирования
* Элементы управления изображаются в цвете фона. Полоса изображается в основ ом цвете символов с тусклым оттенком.


Ниже приведен пример, определяющий в FoxPro для MS-DOS поле редактирования со следующими цветовыми характеристиками.

fox90000.gif Выделенный текст изображается ярко-белыми символами на синем фоне (W+/B).

fox90000.gif Доступная область использует желтый текст на синем фоне (GR+/B).

fox90000.gif Недоступная область использует белый текст на синем фоне (W/B).

Если вы пропускаете какую-либо цветовую пару, нужно поставить запятую вместо опущенной цветовой пары.

Итак, команды имеют следующий вид:

STORE 'To be edited' TO gcText

@ 2,2 EDIT gcText SIZE 5, 50 COLOR ,GR+/B,,,,W+/B,,,,W/B

READ

В следующем примере показано, как можно заменить цветовую схему основного окна Visual FoxPro на другую, заранее определенную цветовую схему:

ACTIVATE SCREEN

STORE 'To be edited' TO gcText

@ 2,2 EDIT gcText COLOR SCHEME 4 SIZE 5, 50

READ

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

Комментарии

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

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

Замечание В синтаксисе данного элемента управления использовано ключевое слово EDIT, в отличие от других элементов управления Visual FoxPro, таких как флажки (CheckBox), командные кнопки (CommandButton) и переключатели (OptionButton), в которых используется GET.

Чтобы сохранить внесенные изменения и перейти к следующему элементу управле ия, нажмите клавишу Tab или Ctrl+Tab. Чтобы сохранить изменения и перейти к предыдущему элементу управления, ажмите Shift+Tab. Чтобы аннулировать внесенные изменения и перейти к следующему элементу управ ения, нажмите клавишу Esc. Если вы редактируете memo-поле, когда задано предложение VALID, изменения могут оказаться несохраненными fox90001.gif это зависит от значения, возвращаемого предложением VALID. Подробнее об этом см. описание предложения VALID выше в данном разделе.

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



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

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

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

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

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