Команда @ ... GET - переключатели
См. также
Синтаксис
@ nRow, nColumn
Параметры
@ nRow, nColumn
Задает местоположение первого переключателя в группе. Аргументы nRow и nColumn представляют собой числовые выражения, задающие позицию первого переключателя
в группе.
Строки нумеруются сверху вниз. Первая строка имеет номер 0 в основном окне
Visual FoxPro или в окне, определенном пользователем.
В Visual FoxPro для Windows строка 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
Задает переменную памяти, элемент массива или поле, в котором следует сохра
ять сделанный пользователем выбор при установке переключателя. Значения MemVarName и FieldName должны быть числового или символьного типа.
Если значение MemVarName или FieldName числового типа, то в заданной им переменной памяти, элементе массива или поле
сохраняется число, соответствующее установленному переключателю. Например, ес
и вы создали три переключателя и пользователь устанавливает второй из них, сох
аняется число 2.
Если значение MemVarName или FieldName символьного типа, то в переменной памяти, элементе массива или поле сохра
яется название установленного переключателя.
Начальная установка переключателя
Значение MemVarName или FieldName определяет, какой именно переключатель получит фокус при активизации перек
ючателей по команде READ (и получит ли фокус вообще). Если значение MemVarName или FieldName числового типа, то фокус получает переключатель, соответствующий этому значе
ию. Например, если значение MemVarName или FieldName равно 1, это означает, что первоначально фокус получает первый из определенн
х вами переключателей. Если значение MemVarName или FieldName не соответствует ни одному из переключателей (то есть оно меньше 1 или больше
общего числа переключателей), то вначале ни один из переключателей не получит
фокус.
Если значение MemVarName или FieldName символьного типа, проводится сравнение этого значения со всеми названиями пе
еключателей с учетом регистра символов. При сравнении все специальные символы,
а также все начальные и конечные пробелы игнорируются. Если найдено совпавшее
азвание, этот переключатель и будет первоначально установлен. Если совпадений
е обнаружится, то вначале ни один из переключателей не получит фокус.
FUNCTION cFormatCodes | PICTURE cFormatCodes
Задает переключатель, а также название или рисунок для него. Необходимо вк
ючить предложение FUNCTION, предложение PICTURE или оба эти предложения. Ни один
из трех этих методов нельзя выделить в качестве предпочтительного. Обратную
косую черту (\) в названии командной кнопки использовать нельзя.
Символьное выражение cFormatCodes предложения FUNCTION должно начинаться с символов *R. Чтобы создать названия
переключателей, после *R через пробел задайте список названий, разделяя их
точками с запятой. Для каждого названия создается один переключатель. Например, сле
ующее предложение FUNCTION создает три переключателя
В следующем примере иллюстрируются разнообразные формы синтаксиса, используем
е при создании группы переключателей. Они начинаются со второй строки и второго
столбца. Создаются три переключателя
Только предложение FUNCTION:
@ 2,2 GET gnChoice FUNCTION '*R None;Single;Double'
READ
STORE 1 TO gnChoice
STORE '*R None;Single;Double' TO gcMyFunc
@ 2,2 GET gnChoice FUNCTION gcMyFunc
READ
@ 2,2 GET gnChoice PICTURE '@*R None;Single;Double'
READ
@ 2,2 GET gnChoice FUNCTION '*R' PICTURE ' None;Single;Double'
READ
STORE 1 TO gnChoice
@ 2,2 GET gnChoice FUNCTION '*R None;Single' PICTURE ';Double'
READ
В Visual FoxPro и FoxPro для Macintosh название переключателя может также яв
яться именем файла рисунка. В FoxPro для Macintosh можно использовать как файл
исунка типа PICT, так и растровый файл.BMP.
Когда в переключателе для названия используется файл рисунка, этот переключате
ь ведет себя как переключатель с текстовым названием. Например, на экране появ
яется рисунок, а сам переключатель не отображается. При выборе рисунка, как и
при установке переключателя соответствующее значение сохраняется в переменной
памяти MemVarName или в поле FieldName.
Чтобы использовать файл рисунка для переключателя, включите букву B в код его
спецификации. В предложениях FUNCTION и PICTURE кодами спецификации, создающими
переключатель, являются соответственно *R и @*R. Чтобы создать переключатель с
рисунком, укажите код *RB или @*RB, а затем после пробела имена файлов рисунков, разделенных точками с запятой. Если файл рисунка нахо
ится в каталоге, отличном от принимаемого по умолчанию, укажите вместе с именем
файла путь к нему.
Замечание Рисунки, размещаемые на переключателе, не обрезаются, не уменьшаются и не
увеличиваются. Чтобы вписать рисунок в переключатель, можно подрегулировать разме
переключателя, используя предложение SIZE.
В FoxPro для Macintosh, если расширение имени файла рисунка опущено, Visual
FoxPro сначала будет искать файл с заданным именем и расширением .BMP. Если такой
файл не найден, Visual FoxPro ищет файл с заданным вами именем и расширением
.PCT. Если и такой файл найти не удастся, Visual FoxPro ищет файл рисунка с зада
ным вами именем без расширения.
Маски рисунка и переключатели
В Visual FoxPro и FoxPro для Macintosh переключатель с рисунком имеет три
состояния: верхнее, нижнее и недоступен. Visual FoxPro автоматически контролирует в
ешний вид переключателя с рисунком в каждом из этих трех состояний, но вы
можете с помощью маски рисунка отменить внешний вид, используемый по умолчанию, и
задать свой.
Маска рисунка определяет, какие области переключателя с рисунком должны быть п
озрачными. По умолчанию прозрачными являются белые области. Если задана маска
исунка, то прозрачными будут белые области маски рисунка, а не файла рисунка.
Маска рисунка представляет собой файл монохромного рисунка. В Visual FoxPro
маской рисунка является растровый файл с расширением имени.MSK. В FoxPro для
Macintosh маской может служить как растровый файл с расширением.MSK, так и файл
типа PICT с расширением.PCM. Маска рисунка должна иметь то же базовое имя, что и
файл рисунка, и соответствующее расширение. Visual FoxPro автоматически ищет
маску для данного файла рисунка в том же каталоге, в котором находится файл рису
ка.
В большинстве случаев без маски можно обойтись. Если вам не нужно, чтобы
какие-то фрагменты рисунка были белыми или если в файле рисунка задан белый фон, то
переключатель с рисунком будет иметь требуемый вид во всех трех состояниях верхнем, нижнем и недоступном.
Если переключатель с рисунком сопровождается маской и находится в верхнем или
ижнем состоянии, то все белые области рисунка окажутся прозрачными и сквозь
их будет виден цвет самого переключателя. Однако для определенных областей можно
сохранить белый цвет. Предположим, на рисунке изображена собака на белом фоне;
пусть у нее белые глаза, а поверхность переключателя красного цвета. Вы хотите, чтобы фон переключателя остался красным, но при
том чтобы глаза у собаки были не красными, а белыми. Создайте маску рисунка,
имеющую тот же размер, что и файл рисунка, но выполненную только в двух цветах черном и белом. Оставьте фон маски белым, а собаку сделайте целиком черной,
включая глаза. Когда переключатель появится на экране, фон окажется красным и со
ьется с переключателем, но глаза останутся белыми.
Когда переключатель с рисунком недоступен, все белые области файла рисунка ста
овятся прозрачными и сквозь них просвечивает цвет поверхности переключателя.
Все области другого (не белого) цвета окажутся темно-серыми. Если у переключате
я есть маска, все белые области маски будут прозрачными (сквозь них виден цвет
кнопки), а все черные области приобретут темно-серую окраску.
Опции N, T, H, V, 2 и 3 предложений PICTURE и FUNCTION
Вместе с кодом спецификации *R можно указывать и другие опции, модифицирующие
поведение (опции N и T) и внешний вид (опции H, V, 2 и 3) переключателей.
Коды спецификации 2 и 3 допустимы только в FoxPro для Macintosh.
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]
Опция
| Описание
|
N
| Не прекращает операцию READ при установке переключателя. Данное поведение при
имается по умолчанию.
|
T
| Прекращает READ в момент установки переключателя.
|
H
| Позиционирует переключатели в горизонтальной строке.
|
V
| Позиционирует переключатели в вертикальном столбце. Данная ориентация при
имается по умолчанию.
|
2
| Создает плоские (двумерные) переключатели. Данный тип переключателя при
имается по умолчанию в FoxPro для Macintosh.
|
3
| Создает трехмерные переключатели.
|
... FUNCTION '*RNV... '
В FoxPro для Macintosh следующее предложение создает вертикальный ряд двумерн х переключателей, при установке которых операция READ не прекращается:
... FUNCTION '*RNV2... '
Переключатели с особыми возможностями
Переключателю можно назначить клавишу доступа, кроме того, его можно сделать едоступным. Чтобы наделить переключатель такими возможностями, нужно при опреде ении его названия задать специальные символы. При сохранении названия в переме ной памяти MemVarName или поле FieldName эти специальные символы отбрасываются.
Клавиши доступа
Для каждого переключателя можно создать клавишу доступа, поставив в названии переключателя перед нужным символом обратную косую черту со знаком "меньше" (\<). В следующем примере создаются три переключателя
None, Single и Double, которым назначаются клавиши доступа: N для None, S для Single и D для Double:STORE 1 TO gnChoice
@ 2,2 GET gnChoice FUNCTION '*R' PICTURE '\<None;\<Single;\<Double'
READ
Подробнее о клавишах доступа см. главу 12 "Конструирование меню" Руководства разработчика.
Недоступные переключатели
Переключатель можно сделать недоступным, чтобы его нельзя было выделить или установить. Недоступные переключатели изображаются в цветах, определенных для того состояния. Чтобы сделать какой-либо переключатель недоступным, поставьте пе ед его названием две обратные косые черты (\\). Чтобы сделать недоступной г уппу переключателей, укажите ключевое слово DISABLE (описывается ниже в данном раз еле).
В следующем примере недоступным делается переключатель
Single:STORE 1 TO gnChoice
@ 2,2 GET gnChoice FUNCTION '*R' PICTURE 'None;\\Single;Double'
READ
NAME ObjectName
Допустимо только в Visual FoxPro.
Создает ссылку на переключатель как на объект, что позволяет манипулировать пе еключателем, используя объектно-ориентированные свойства элемента управления OptionButton. Подробнее о манипулировании элементами управления FoxPro с помощью предложения NAME см. Элементы управления и объекты.
FONT cFontName [, nFontSize]
Допустимо только в Visual FoxPro и FoxPro для Macintosh.
Задает шрифт для названия переключателя и размер шрифта. Аргумент cFontName задает имя шрифта, а nFontSize размер шрифта. Например, следующая команда отображает название переключателя в шрифте Courier размером в 16 пунктов:
FONT 'Courier', 16
Если вы указали предложение FONT, опустив аргумент nFontSize, используется 10-пунктовый шрифт.
В Visual FoxPro, если заданный шрифт отсутствует, его заменяет шрифт с похожими характеристиками.
В FoxPro для Macintosh, если заданный шрифт отсутствует, используется шрифт Chicago.
В FoxPro для MS-DOS предложение FONT игнорируется.
Если предложение FONT опущено, а переключатели помещаются в основное окно Visual FoxPro, используется шрифт этого окна. Если предложение 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 (Подчеркнутый)
|
STYLE 'BI'
DEFAULT Expression
Когда вы устанавливаете переключатель, этот выбор сохраняется в заданной пе еменной памяти, элементе массива или поле. Если задана несуществующая переменная памяти, она будет автоматически создана и проинициализирована, при условии, что включено предложение DEFAULT. Однако если в этом предложении указать элемент массива, он не будет создан. Если заданная переменная памяти уже существует или если вы задали поле, предложение DEFAULT игнорируется.
Замечание Если предложение DEFAULT опущено и переменная памяти, заданная аргументом MemVarName, не существует, Visual FoxPro сгенерирует сообщение об ошибке.
Выражение Expression предложения DEFAULT определяет тип создаваемой переменной памяти и ее началь ое значение. Это выражение должно быть числового или логического типа. Далее п иведены примеры предложений DEFAULT для переключателей:
@ 2,2 GET gnChoice FUNCTION '*R' + ;
'None;Single;Double' DEFAULT 'Single'
READ
@ 2,2 GET gnChoice FUNCTION '*R None;Single;Double' ;
DEFAULT 2
READ
SIZE nHeight, nWidth [, nSpacing]
Задает размер каждого переключателя и интервал между ними. Аргумент nHeight определяет высоту переключателя в строках.
В FoxPro для MS-DOS переключатель всегда имеет высоту в одну строку, поэтому числовое выражение nHeight игнорируется.
Аргумент nWidth задает ширину переключателя в столбцах. Если предложение SIZE опущено, ширина каждого отдельного переключателя по умолчанию определяется длиной его названия.
Промежуток между переключателями в строке определяется аргументом nSpacing. Если предложение SIZE опущено, между вертикальными переключателями строки не вставляются, а между горизонтальными вставляется один столбец.
В Visual FoxPro и FoxPro для Macintosh на размер переключателя также влияет его шрифт. Шрифт переключателя задается с помощью предложения FONT. Если это пред ожение опущено, в переключателях используется шрифт родительского окна (основ ого окна Visual FoxPro или пользовательского окна).
В следующем примере показано, как определять промежуток между переключателями с помощью предложения SIZE:
CLEAR
@ 2,2 GET gnChoice1 FUNCTION '*R'+ '\<None;\<Single;\<Double' ;
DEFAULT 'None' SIZE 1, 12, 1
@ 2,16 GET gnChoice2 FUNCTION '*R'+ '\<None;\<Single;\<Double' ;
DEFAULT 'None' SIZE 1, 12, 3
READ
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.
VALID lExpression1 | nExpression
Санкционирует пользовательский ввод. Когда пользователь устанавливает перек ючатель, вычисляется значение выражения VALID. Как правило, lExpression1 и nExpression представляют собой пользовательские функции. С помощью подобных функций можно выбирать другие элементы управления, делать их доступными или недоступными, открывать окно просмотра, открывать другие формы для ввода данных или переходить к новой записи. В качестве пользовательской функции можно задать команду CLEAR READ, которая прекращает операцию READ.
lExpression1
Когда в предложение VALID возвращается логическое значение, это значение игно ируется, а переключатели остаются активными элементами управления. Впрочем, мож о задать пользовательскую функцию, которая возвращает в предложение VALID огическое значение и при этом активизирует другой элемент управления.
nExpression
Определяет, какой элемент активизируется после установки переключателя. Подроб ее об элементах управления см. Элементы управления и объекты.
Числовое выражение определяет одну из следующих трех ситуаций.
Если nExpression = 0, установленный переключатель остается активным элементом управления.
Если значение nExpression положительно, оно задает количество элементов управления, на которое следует сдвинуться. Например, если выбран последний переключатель в группе переключате ей и VALID возвращает 1, активизируется следующий элемент управления. Если з ачение nExpression больше числа оставшихся элементов управления, команда READ прекращается (если только не выдана команда READ CYCLE, активизирующая элементы управления).
Если значение nExpression отрицательно, оно задает количество элементов управления, на которое нужно ве нуться. Например, если выбран первый переключатель в группе переключателей и VALID возвращает 1, активизируется предыдущий элемент управления. Если nExpression задает возвращение далее первого элемента управления, команда READ прек ащается (если только не выдана команда READ CYCLE, активизирующая элементы управле ия).
WHEN lExpression2
Задает условие, в соответствии с которым переключатели можно устанавливать то ько в том случае, если значением выражения lExpression2 является "истина" (.T.). Если значением lExpression2 оказывается "ложь" (.F.), переключатель устанавливать нельзя, а если он распо ожен между другими элементами управления, он будет пропускаться.
COLOR SCHEME nSchemeNumber
Задает цвета переключателя. Если не задано предложение COLOR, цвета перек ючателя будут определяться цветовой схемой основного окна Visual FoxPro; если перек ючатели расположены в пользовательском окне, то их цвета определяются цветовой схемой этого окна.
COLOR ColorPairList
Задает цвета переключателей. В следующей таблице перечислены цветовые пары каж ой цветовой схемы и контролируемые ими компоненты переключателя.
Номер цветовой пары
| Атрибут переключателя
|
5
| Сообщение
|
6
| Название установленного переключателя
|
7
| Клавиши доступа
|
9
| Название доступного переключателя
|
10
| Название недоступного переключателя
|
STORE 1 TO gnChoice
@ 2,2 GET gnChoice FUNCTION '*R None;Single;Double';
COLOR SCHEME 4
READ
В следующем примере создаются переключатели None, Single и Double с клавишами доступа N для None и S для Single. Помимо этого, переключатели обладают следующими цветовыми характеристиками в FoxPro для MS-DOS.
Установленный переключатель отображается с ярко-белым названием на синем фоне (W+/B).
Символы клавиш доступа изображаются красным цветом на синем фоне (R/B).
Доступным переключателям соответствуют желтые названия на синем фоне (GR+/B).
Недоступным переключателям соответствуют белые названия на синем фоне (W/B).
Если вы пропускаете какую-либо цветовую пару, нужно поставить соответствующую ей запятую.
Итак, команды имеют следующий вид:
STORE 1 TO gnChoice
@ 2,2 GET gnChoice FUNCTION '*R \<None;\<Single;\\Double';
COLOR ,,,,,W+/B,R/B,,GR+/B,W/B
READ
Подробнее о цветовых схемах и цветовых парах см. Использование цветов.
Комментарии
В Visual FoxPro переключатель создается с помощью конструктора форм или DEFINE CLASS. Подробнее о совместимости с элементами управления предыдущих версий FoxPro 2.x см. Элементы управления и объекты.
Подробнее о добавлении элементов управления к форме см. главу 9 "Создание фо м" Руководства разработчика и Добавление объекта в контейнерный класс.
Устанавливая переключатель, вы делаете выбранную опцию текущей и отменяете пре ыдущую опцию. Возле названия переключателя появляется маркер, указывающий на с еланный выбор.
Если вы создаете формы ввода данных с помощью конструктора форм, вы можете о ойтись вообще без данной команды. Конструктор форм автоматически генерирует кома ды, создающие переключатели.
В Visual FoxPro и FoxPro для Macintosh для переключателя можно задать название или рисунок. См. описание предложений FUNCTION и PICTURE в разделе "Параметры".
Новое на сайте
-
Обновлен портфель программиста
Добавлены: Установка HTML Help (Создание справочной системы), Imagedit.zip - Графический редактор ( ico и bmp), Библиотека локализации HTML Help (Русский) -
Новые примеры программ
Установка библиотек, Игровая программа "Охота на лис", Установка библиотек "Охота на лис", plastic -"Платежки", Библиотеки (на FPD26), platan -"Платежки" (на Clipper 5.2) -
Обновленна справка
Подсказки, технология программирования и использование Visual FoxPro. Команды, функции, операторы, объекты, свойства, события и методы.