Новости



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

Команда @ ... GET - прозрачные кнопки

См. также

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

Синтаксис

@ nRow, nColumn
GET MemVarName | FieldName
FUNCTION cFormatCodes | PICTURE cFormatCodes
[DEFAULT nExpression1]
[SIZE nHeight, nWidth [, nSpacing]]
[ENABLE | DISABLE]
[MESSAGE cMessageText]
[NAME ObjectName]
[VALID lExpression1 | nExpression2]
[WHEN lExpression2]
[COLOR SCHEME nSchemeNumber
| COLOR ColorPairList]

Параметры

@ nRow, nColumn

Задает местоположение прозрачной кнопки. Аргументы 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

Задает переменную памяти, элемент массива или поле, в котором следует сохра ять число, представляющее сделанный пользователем выбор. Например, если вы созда и четыре прозрачные кнопки и пользователь нажимает третью из них, сохраняется число 3. Начальное значение MemVarName или FieldName определяет, какая кнопка будет нажата в исходном состоянии.

FUNCTION cFormatCodes | PICTURE cFormatCodes

Задает прозрачную кнопку. Необходимо включить предложение FUNCTION, предложе ие PICTURE или оба эти предложения. Ни один из трех этих методов нельзя выделить в качестве предпочтительного.

В предложении FUNCTION символьное выражение cFormatCodes должно начинаться с кода *I. Чтобы создать несколько прозрачных кнопок, нужно поставить точку с запятой для каждой дополнительной кнопки. Например, сле ующее предложение создает три прозрачные кнопки:

... FUNCTION '*I ;;'...

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

В предложении PICTURE символьное выражение cFormatCodes должно начинаться кодом @, за которым следует *I и пробел. Например, сле ующее предложение создает три прозрачные кнопки:

... PICTURE '@*I ;;'...

Можно задать и оба предложения, FUNCTION и PICTURE. В этом случае символьное в ражение cFormatCodes предложения FUNCTION должно содержать *I, что указывает на создание прозрачн х кнопок; кроме того, в него можно включить пробел и точки с запятой, чтобы за ать дополнительные прозрачные кнопки. Символьное выражение cFormatCodes предложения PICTURE также может содержать точки с запятой, указывающие на соз ание дополнительных прозрачных кнопок.

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

Только предложение FUNCTION:

STORE 1 TO gnChoice

@ 2,2 GET gnChoice FUNCTION '*I ;;;;' SIZE 2, 4, 1

READ

STORE 1 TO gnChoice

STORE '*I ;;;;' TO mfunc

@ 2,2 GET gnChoice FUNCTION mfunc SIZE 2, 4, 1

READ

Только предложение PICTURE:

STORE 1 TO gnChoice

@ 2,2 GET gnChoice PICTURE '@*I ;;;;' SIZE 2, 4, 1

READ

STORE 1 TO gnChoice

@ 2,2 GET gnChoice PICTURE '@*I' + ' ;;;;' SIZE 2, 4, 1

READ

Оба предложения FUNCTION и PICTURE:

STORE 1 TO gnChoice

@ 2,2 GET gnChoice FUNCTION '*I' PICTURE ' ;;;;' SIZE 2, 4, 1

READ

STORE 1 TO gnChoice

@ 2,2 GET gnChoice FUNCTION '*I ;;' PICTURE ';;' SIZE 2, 4, 1

READ

Опции N, T, H и V предложений PICTURE и FUNCTION

Вместе с кодом спецификации *I можно указывать и другие опции, которые мо ицифируют поведение (опции N и T) и выравнивание (опции H и V) прозрачных кнопок. Эти опции описаны в следующей таблице.

Элемент
Описание
N
Не прекращает операцию READ при нажатии прозрачной кнопки. Данное поведение п инимается по умолчанию.
T
Прекращает READ в момент нажатия прозрачной кнопки.
H
Позиционирует прозрачные кнопки в горизонтальной строке.
V
Позиционирует прозрачные кнопки в вертикальной строке. Данное выравнивание при имается по умолчанию.

Опции H и V можно комбинировать с опциями T и N следующими способами: NH, NV, TH и TV. Например, следующее предложение создает вертикальную группу кнопок и е прекращает выполнение команды READ при нажатии одной из этих кнопок:

... FUNCTION '*INV... '

Недоступные прозрачные кнопки

Прозрачную кнопку можно сделать недоступной, чтобы ее нельзя было нажать. Ког а кнопка недоступна, она изображается в цветах, определенных для данного состоя ия. Чтобы сделать прозрачную кнопку недоступной, поставьте две обратные косые черты (\\) перед точкой с запятой, соответствующей данной кнопке в предложении FUNCTION или PICTURE.

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

CLEAR

STORE 1 TO gnChoice

IF NOT _DOS

MODIFY WINDOW SCREEN FONT 'foxfont', 9

ENDIF

*** Draw boxes для the transparent-button regions. ***

@ 4,2 SAY CHR(218) + CHR(196) + CHR(196) + CHR(191)

@ 5,2 SAY CHR(192) + CHR(196) + CHR(196) + CHR(217)

@ 7,2 SAY CHR(218) + CHR(196) + CHR(196) + CHR(191)

@ 8,2 SAY CHR(192) + CHR(196) + CHR(196) + CHR(217)

@ 10,2 SAY CHR(218) + CHR(196) + CHR(196) + CHR(191)

@ 11,2 SAY CHR(192) + CHR(196) + CHR(196) + CHR(217)

@ 13,2 SAY CHR(218) + CHR(196) + CHR(196) + CHR(191)

@ 14,2 SAY CHR(192) + CHR(196) + CHR(196) + CHR(217)

@ 16,2 SAY CHR(218) + CHR(196) + CHR(196) + CHR(191)

@ 17,2 SAY CHR(192) + CHR(196) + CHR(196) + CHR(217)

@ 4,2 GET gnChoice FUNCTION '*I ;\\;;\\;' SIZE 2, 4, 1

READ

DEFAULT nExpression1

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

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

Выражение nExpression определяет начальное значение переменной MemVarName. Далее приведены примеры предложений DEFAULT для прозрачных кнопок:

@ 2,2 GET gnChoice FUNCTION '*I ;;;;' DEFAULT 1

READ

STORE 3 TO gnButton

@ 2,2 GET gnChoice FUNCTION '*I ;;;;' DEFAULT gnButton

READ

SIZE nHeight, nWidth [, nSpacing]

Задает размер прозрачной кнопки. Аргумент nHeight определяет высоту, а nWidth fox90001.gif ширину. По умолчанию высота и ширина равны 0.

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

ENABLE

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

DISABLE

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

MESSAGE cMessageText

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

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

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

NAME ObjectName

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

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

VALID lExpression1 | nExpression2

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

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

lExpression1

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

nExpression2

Предложение VALID с числовым выражением nExpression2 используется для задания элемента управления, который следует активизировать после нажатия прозрачной кнопки. Об элементах управления см. Элементы управления и объекты.

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

fox90000.gif Если значение nExpression2 равно 0, нажатая прозрачная кнопка остается активной.

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

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

WHEN lExpression2

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

COLOR SCHEME nSchemeNumber

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

COLOR ColorPairList

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

Номер цветовой пары
Цветовой атрибут области редактирования
5
Сообщение
6
Нажатая прозрачная кнопка
10
Недоступная прозрачная кнопка

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

Комментарии

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

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

Данный вариант команды @... GET создает прозрачные кнопки fox90001.gif прямоугольные области основного окна Visual FoxPro или пользовательского ок а, которые можно выбирать ("нажимать"). С помощью команды @... SAY можно помещать символы в прямоугольники кнопок. При нажатии прозрачной кнопки изображенные а ней символы выделяются подсветкой. Чтобы активизировать кнопки, выдайте коман у READ или READ CYCLE.



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

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

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

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

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