Команда @ ... GET - прозрачные кнопки
См. также
Синтаксис
@ nRow, nColumn
Параметры
@ nRow, nColumn
Задает местоположение прозрачной кнопки. Аргументы nRow и nColumn представляют собой числовые выражения, определяющие позицию первой кнопки в г
уппе прозрачных кнопок.
Строки нумеруются сверху вниз. Первая строка имеет номер 0 в основном окне
Visual FoxPro или в окне, определенном пользователем.
В Visual FoxPro строка 0 это строка, расположенная непосредственно под системной строкой меню Visual
FoxPro.
В FoxPro для Macintosh строка 0 это строка, расположенная непосредственно под строкой заголовка FoxPro.
В FoxPro для MS-DOS строка 0 это строка, которую занимает системная строка меню FoxPro. Подробнее о том,
как, манипулируя системной строкой меню FoxPro для MS-DOS, размещать прозрачные
кнопки в строке 0, см. SET SYSMENU.
Столбцы нумеруются слева направо. Первый столбец имеет номер 0 в основном окне
Visual FoxPro или пользовательском окне.
Когда в пользовательское окно направляется первая кнопка из группы прозрачных
кнопок, координаты ее строки и столбца берутся относительно данного пользовате
ьского окна, а не основного окна Visual FoxPro.
В Visual FoxPro и FoxPro для Macintosh позиция кнопки в основном окне Visual
FoxPro или в пользовательском окне определяется шрифтом этого окна. Большинство
шрифтов допускают множество вариантов с различными размерами, а некоторые из
их имеют пропорциональные промежутки. Номер строки зависит от высоты текущего ш
ифта, а номер столбца от средней ширины буквы в текущем шрифте.
В Visual FoxPro и FoxPro для Macintosh позицию первой кнопки в группе прозрачн
х кнопок можно задавать дробными значениями координат по строкам и столбцам.
В FoxPro для MS-DOS десятичные дробные значения, используемые в качестве коор
инат по строкам и столбцам, округляются до ближайшего целого числа.
GET MemVarName | FieldName
Задает переменную памяти, элемент массива или поле, в котором следует сохра
ять число, представляющее сделанный пользователем выбор. Например, если вы созда
и четыре прозрачные кнопки и пользователь нажимает третью из них, сохраняется
число 3. Начальное значение MemVarName или FieldName определяет, какая кнопка будет нажата в исходном состоянии.
FUNCTION cFormatCodes | PICTURE cFormatCodes
Задает прозрачную кнопку. Необходимо включить предложение FUNCTION, предложе
ие PICTURE или оба эти предложения. Ни один из трех этих методов нельзя выделить
в качестве предпочтительного.
В предложении FUNCTION символьное выражение cFormatCodes должно начинаться с кода *I. Чтобы создать несколько прозрачных кнопок, нужно
поставить точку с запятой для каждой дополнительной кнопки. Например, сле
ующее предложение создает три прозрачные кнопки:
В предложении PICTURE символьное выражение cFormatCodes должно начинаться кодом @, за которым следует *I и пробел. Например, сле
ующее предложение создает три прозрачные кнопки:
В следующем примере иллюстрируются разнообразные формы синтаксиса, используем
е при создании прозрачных кнопок. Создаются пять прозрачных кнопок; число,
соответствующее каждой нажатой кнопке, сохраняется в переменной
Только предложение FUNCTION:
@ 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
@ 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
@ 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
Вместе с кодом спецификации *I можно указывать и другие опции, которые мо
ицифируют поведение (опции N и T) и выравнивание (опции H и V) прозрачных кнопок.
Эти опции описаны в следующей таблице.
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]
Элемент
| Описание
|
N
| Не прекращает операцию READ при нажатии прозрачной кнопки. Данное поведение п
инимается по умолчанию.
|
T
| Прекращает READ в момент нажатия прозрачной кнопки.
|
H
| Позиционирует прозрачные кнопки в горизонтальной строке.
|
V
| Позиционирует прозрачные кнопки в вертикальной строке. Данное выравнивание при
имается по умолчанию.
|
... 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 ширину. По умолчанию высота и ширина равны 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 определяет одну из трех следующих ситуаций.
Если значение nExpression2 равно 0, нажатая прозрачная кнопка остается активной.
Если значение nExpression2 положительно, оно указывает количество элементов управления, на которое сле ует сдвинуться. Например, если вы находитесь у последней кнопки в группе прозрач ых кнопок и VALID возвращает 1, активизируется следующий элемент управления. Если значение nExpression2 больше числа оставшихся элементов управления, команда READ прекращается (если только не выдана команда READ CYCLE, активизирующая элементы управления).
Если значение nExpression2 отрицательно, оно задает количество элементов управления, на которое нужно ве нуться. Например, если вы находитесь на первой кнопке в группе прозрачных к опок и VALID возвращает 1, активизируется предыдущий элемент управления или текстовое поле. Если 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 создает прозрачные кнопки прямоугольные области основного окна Visual FoxPro или пользовательского ок а, которые можно выбирать ("нажимать"). С помощью команды @... SAY можно помещать символы в прямоугольники кнопок. При нажатии прозрачной кнопки изображенные а ней символы выделяются подсветкой. Чтобы активизировать кнопки, выдайте коман у READ или READ CYCLE.
Новое на сайте
-
Обновлен портфель программиста
Добавлены: Установка HTML Help (Создание справочной системы), Imagedit.zip - Графический редактор ( ico и bmp), Библиотека локализации HTML Help (Русский) -
Новые примеры программ
Установка библиотек, Игровая программа "Охота на лис", Установка библиотек "Охота на лис", plastic -"Платежки", Библиотеки (на FPD26), platan -"Платежки" (на Clipper 5.2) -
Обновленна справка
Подсказки, технология программирования и использование Visual FoxPro. Команды, функции, операторы, объекты, свойства, события и методы.