Новости



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
[NAME ObjectName]
[FONT cFontName [, nFontSize]]
[STYLE cFontStyle]
[DEFAULT Expression]
[SIZE nHeight, nWidth [, nSpacing]]
[ENABLE | DISABLE]
[MESSAGE cMessageText]
[VALID lExpression1 | nExpression]
[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

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

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

FUNCTION cFormatCodes | PICTURE cFormatCodes

Задает кнопку, а также название или рисунок для нее. Необходимо включить пред ожение FUNCTION, предложение PICTURE или оба эти предложения. Ни один из трех тих методов нельзя выделить в качестве предпочтительного. Предложения FUNCTION и PICTURE содержат код спецификации командной кнопки fox90001.gif звездочку (*) fox90001.gif и текст названий командных кнопок. Обратная косая черта (\) в названии команд ой кнопки не допускается.

Символьное выражение cFormatCodes предложения FUNCTION должно начинаться со звездочки (*). Чтобы создать назва ия командных кнопок, после звездочки через пробел задайте список названий, раз еляя их точками с запятой. Для каждого названия создается одна кнопка. Наприме , следующее предложение FUNCTION создает командные кнопки с названиями OK и Cancel:

... FUNCTION '* OK;Cancel' SIZE 1, 8...

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

.. PICTURE '@* OK;Cancel' SIZE 1, 8...

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

В следующем примере иллюстрируются разнообразные формы синтаксиса, используем е при создании командных кнопок. Создаются две командные кнопки: OK and Cancel. Первая кнопка (OK) размещается во второй строке и втором столбце. Число, соответствующее ажатой кнопке, сохраняется в переменной памяти gnChoice.

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

STORE 1 TO gnChoice

@ 2,2 GET gnChoice FUNCTION '* OK;Cancel' SIZE 1, 8

READ

STORE 1 TO gnChoice

STORE '* OK;Cancel' TO gcPrompts

@ 2,2 GET gnChoice FUNCTION gcPrompts SIZE 1, 8

READ

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

STORE 1 TO gnChoice

@ 2,2 GET gnChoice PICTURE '@* OK;Cancel' SIZE 1, 8

READ

STORE 1 TO gnChoice

@ 2,2 GET gnChoice PICTURE '@*' + ' OK;Cancel' SIZE 1, 8

READ

Предложения FUNCTION и PICTURE:

STORE 1 TO gnChoice

@ 2,2 GET gnChoice FUNCTION '*' ;

PICTURE ' OK;Cancel' SIZE 1, 8

READ

Кнопки с названиями в виде рисунков

В Visual FoxPro и FoxPro для Macintosh название командной кнопки может также являться именем файла рисунка.

fox90000.gif В Visual FoxPro файлом рисунка может быть растровый файл с расширением имени .BMP.

fox90000.gif В FoxPro для Macintosh можно использовать как файл рисунка типа PICT, так и астровый файл .BMP.

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

Чтобы использовать для командной кнопки файл рисунка, включите букву B в код спецификации командной кнопки. В предложениях FUNCTION и PICTURE кодами спецификации, создающими командную кнопку, являются соответственно * и @*. Чтобы соз ать командную кнопку с рисунком, укажите код *B или @*B, а затем через пробел fox90001.gif имя файла рисунка. Если файл рисунка находится в каталоге, отличном от при имаемого по умолчанию, укажите вместе с именем файла путь к нему.

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

Если расширение имени файла рисунка опущено, FoxPro для Macintosh сначала бу ет искать файл с заданным именем и расширением .BMP. Если такой файл не найден, FoxPro для Macintosh ищет файл с заданным вами именем и расширением .PCT. Если и такой файл найти не удастся, FoxPro для Macintosh ищет файл рисунка с заданн м именем без расширения.

Маски рисунка и командные кнопки

В Visual FoxPro и FoxPro для Macintosh командная кнопка с рисунком имеет три состояния: вверху, внизу и недоступна. Visual FoxPro автоматически контролирует внешний вид командной кнопки с рисунком в каждом из этих трех состояний, но вы можете с помощью маски рисунка отменить внешний вид, используемый по умолчанию, и задать свой.

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

Маска рисунка представляет собой файл монохромного рисунка. В Visual FoxPro маской рисунка является растровый файл с расширением имени .MSK. В FoxPro для Macintosh маской может служить как растровый файл с расширением .MSK, так и файл типа PICT с расширением .PCM. Маска рисунка должна иметь то же базовое имя, что и файл рисунка, и соответствующее расширение. Visual FoxPro автоматически ищет маску для данного файла рисунка в том же каталоге, где находится файл рисунка.

В большинстве случаев без маски можно обойтись. Если вам не нужно, чтобы какие-то фрагменты рисунка были белыми или если в файле рисунка задан белый фон, то командная кнопка с рисунком будет иметь требуемый вид во всех трех состояниях fox90001.gif верхнем, нижнем и недоступном.

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

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

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

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

Вместе с кодом спецификации * можно указывать и другие опции, которые модицифи уют поведение (опции N и T) и внешний вид (H, V, 2 и 3) командных кнопок.

Коды спецификации 2 и 3 доступны только в FoxPro для Macintosh.

Опция
Описание
N
Не прекращает операцию READ при нажатии командной кнопки.
T
Прекращает READ в момент нажатия командной кнопки. Данное поведение при имается по умолчанию
H
Позиционирует командные кнопки в горизонтальной строке.
V
Позиционирует командные кнопки в вертикальном столбце. Данная ориентация испо ьзуется по умолчанию.
2
Создает плоские (двумерные) черно-белые командные кнопки.
3
Создает трехмерные командные кнопки. Данный тип командной кнопки используется по умолчанию в FoxPro для Macintosh.

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

... FUNCTION '*NH... '

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

... FUNCTION '*NH2... '

Командные кнопки с особыми возможностями

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

Клавиши доступа

Для каждой кнопки можно создать клавишу доступа, поставив в названии командной кнопки перед нужным символом обратную косую черту со знаком "меньше" (\<). В с едующем примере создаются кнопки OK и Cancel с клавишами доступа O и C:

STORE 1 TO gnChoice

@ 2,8 GET gnChoice FUNCTION '* \<OK;\<Cancel'

READ

Подробнее о клавишах доступа см. главу 12 "Конструирование меню" Руководства разработчика.

Недоступные командные кнопки

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

В следующем примере делается недоступной командная кнопка OK:

STORE 1 TO gnChoice

@ 2,2 GET gnChoice FUNCTION '* \\OK;Cancel'

READ

Командные кнопки по умолчанию

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

В следующем примере в качестве командной кнопки по умолчанию задается кнопка OK:

STORE 1 TO gnChoice

@ 2,2 GET gnChoice FUNCTION '* \!OK;Cancel'

READ

В FoxPro для MS-DOS командная кнопка по умолчанию заключается в угловые ско ки, чтобы ее можно было отличить от других командных кнопок. Командная кнопка по умолчанию автоматически выбирается при нажатии клавиш Ctrl+Enter или Ctrl+W. Для каждой команды READ можно задать только одну командную кнопку по умолча ию.

В Visual FoxPro командная кнопка по умолчанию окружается жирной рамкой. Чтобы выбрать ее, нужно нажать клавиши Enter, Ctrl+Enter или Ctrl+W. Установка KEYCOMP определяет поведение командных кнопок по умолчанию Visual FoxPro следующим образом.

fox90000.gif Если задано SET KEYCOMP TO DOS, командная кнопка по умолчанию ведет себя так же, как и командная кнопка по умолчанию в FoxPro для MS-DOS.

fox90000.gif Если задано SET KEYCOMP TO WINDOWS, командная кнопка по умолчанию изменяется п и переходе от кнопки к кнопке. Командная кнопка, заданная с кодом \!, является кнопкой по умолчанию, когда активен элемент управления, отличный от кнопки. Ес и активна командная кнопка, она становится кнопкой по умолчанию.

В FoxPro для Macintosh командная кнопка по умолчанию также окружается жирной амкой. Установка KEYCOMP определяет поведение командных кнопок по умолчанию FoxPro для Macintosh следующим образом.

fox90000.gif Если задано SET KEYCOMP TO DOS, командная кнопка по умолчанию всегда остается одной и той же и выбирается нажатием клавиш Ctrl+Enter.

fox90000.gif Если задано SET KEYCOMP TO WINDOWS, кнопка по умолчанию в диалоговом окне ок ужается жирной рамкой и всегда остается одной и той же. Она выбирается нажатием клавиш Enter или Ctrl+Enter. Однако если нажать Enter, когда текущим элементом управления является область редактирования текста, п оизойдет перемещение курсора к следующей строке в области. В областях редакти ования текста кнопка по умолчанию выбирается нажатием клавиш Ctrl+Enter.

fox90000.gif Если задано SET KEYCOMP TO MAC, кнопка по умолчанию в диалоговом окне ок ужается жирной рамкой и всегда остается одной и той же. Она выбирается нажатием к авиши Enter. Однако если нажать Enter, когда текущим элементом управления является область редактирования текста, п оизойдет перемещение курсора к следующей строке в области. В областях редакти ования текста кнопка по умолчанию выбирается нажатием клавиш Ctrl+Enter.

Командные кнопки выхода

Командная кнопка выхода автоматически выбирается при нажатии клавиши Esc. Обычно такая кнопка используется для выхода из формы ввода данных, диа огового окна или программы, когда нужно отменить все изменения, внесенные в форму, иалоговое окно или программу. Для каждой команды READ можно задать только одну командную кнопку выхода.

Если командная кнопка выхода не задана, то при работе в области редактирования команды @... GET нажатие клавиши Esc завершает редактирование и восстанавливает первоначальное содержимое области едактирования. Если для области редактирования задана процедура VALID, эта п оцедура не выполняется. При наличии командной кнопки выхода нажатием клавиши Esc сохраняется текущее содержимое области редактирования команды @... GET и выпо няется процедура VALID.

Чтобы создать командную кнопку выхода, поставьте перед названием кнопки обрат ую косую черту с вопросительным знаком (\?).

В следующем примере командная кнопка Cancel определяется в качестве кнопки выхода:

STORE 1 TO gnChoice

@ 2,2 GET gnChoice FUNCTION '* OK;\?Cancel'

READ

Командные кнопки с комбинированными характеристиками

Можно создать командную кнопку, обладающую несколькими особыми возможностями. В следующем примере кнопка OK определяется как кнопка по умолчанию, ей назначается клавиша доступа O. К опка Cancel является кнопкой выхода, ей назначается клавиша доступа C. Код спецификации к авиши доступа ставится непосредственно перед нужным символом.

STORE 1 TO gnChoice

@ 2, 2 GET gnChoice FUNCTION '* \!\<OK;\?\<Cancel'

READ

NAME ObjectName

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

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

FONT cFontName [, nFontSize]

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

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

FONT 'Courier', 16

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

Если вы указали предложение FONT, опустив аргумент nFontSize, используется 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 (Подчеркнутый)

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

STYLE 'BI'

DEFAULT Expression

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

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

Выражение Expression предложения DEFAULT определяет тип создаваемой переменной памяти и ее началь ое значение. Это выражение должно быть числового или логического типа. Далее п иведены примеры предложений DEFAULT для командных кнопок:

@ 2,2 GET gnChoice FUNCTION '* OK;Cancel' DEFAULT 'OK'

READ

@ 2,2 GET gnChoice FUNCTION '* OK;Cancel' DEFAULT 2

READ

STORE 'OK' TO gcButton

@ 2,2 GET gnChoice FUNCTION '* OK;CANCEL' DEFAULT gcButton

READ

SIZE nHeight, nWidth [, nSpacing]

Задает размер кнопки и интервал между кнопками. Аргумент nHeight определяет высоту командной кнопки в строках.

В FoxPro для MS-DOS командная кнопка всегда имеет высоту в одну кнопку, по тому числовое выражение nHeight игнорируется.

По умолчанию ширина каждой отдельной кнопки определяется длиной ее названия. А гумент nWidth задает ширину кнопки в столбцах. Командная кнопка не может иметь размеры ме ьшие, чем ее название.

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

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

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

CLEAR

@ 2,2 GET gnChoice FUNCTION '* OK;Cancel' ;

DEFAULT 1 SIZE 2, 10, 1

@ 2,16 GET gnChoice FUNCTION '* OK;Cancel' ;

DEFAULT 1 SIZE 2, 10, 2

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

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

nExpression

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

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

fox90000.gif Если nExpression = 0, нажатая командная кнопка остается активной кнопкой.

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

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

Следующий пример показывает, что можно сделать с помощью пользовательской фу кции. Пять кнопок отображаются вертикально в ряд. Нажатие той или иной кнопки используется при позиционировании указателя записи. Задан функциональный код N, чтобы операция READ не прекращалась при нажатии кнопки. Когда вы нажимаете к опку, выполняется пользовательская функция gorec.

CLOSE DATABASES

USE customer

SET TALK OFF

DEFINE WINDOW wOne FROM 3,5 TO 20,20 FLOAT DOUBLE COLOR SCHEME 5

ACTIVATE WINDOW wOne

@ 1,2 GET gnChoice FUNCTION '*NV Next;Prior;Top;Bottom;Quit';

SIZE 2, 10, 1 VALID GOREC( ) DEFAULT 1

READ CYCLE

CLEAR WINDOW

PROCEDURE gorec

DO CASE

CASE gnChoice = 1

SKIP

IF EOF( )

SKIP fox90002.gif1

ENDIF

CASE gnChoice = 2

SKIP fox90002.gif1

IF BOF( )

SKIP

ENDIF

CASE gnChoice = 3

GO TOP

CASE gnChoice = 4

GO BOTTOM

CASE gnChoice = 5

CLEAR READ

ENDCASE

@ 12,6 SAY ALLTRIM(STR(RECNO( )))

RETURN

WHEN lExpression2

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

COLOR SCHEME nSchemeNumber

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

COLOR ColorPairList

Задает цвета для командных кнопок. В Visual FoxPro и FoxPro для Macintosh пред ожение COLOR не влияет на цвета командных кнопок; оно определяет только цвет сообщения (если сообщение не выдается в строку состояния).

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

Номер цветовой пары
Атрибут кнопки
5
Сообщение
6
Название нажатой кнопки (поддерживается только в FoxPro для MS-DOS).
7
Клавиши доступа (поддерживается только в FoxPro для MS-DOS).
9
Название доступной кнопки (поддерживается только в FoxPro для MS-DOS).
10
Название недоступной кнопки (поддерживается только в FoxPro для MS-DOS).

В следующем примере создаются командные кнопки OK и Cancel с клавишами доступа O и C. Кроме этого, кнопки имеют следующие цветовые ха актеристики в FoxPro для MS-DOS.

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

fox90000.gif Символы клавиши доступа изображаются красным цветом на синем фоне (R/B).

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

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

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

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

STORE 1 TO gnChoice

@ 2,2 GET gnChoice FUNCTION '* \<OK;\<CANCEL;\\DISABLED';

COLOR ,,,,,W+/B,R/B,,GR+/B,W/B

READ

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

Комментарии

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

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

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

В Visual FoxPro и FoxPro для Macintosh для командной кнопки можно задать назва ие или рисунок. См. описание предложений FUNCTION и PICTURE в разделе "Парамет ы".

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



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

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

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

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

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