Создает группу переключателей.

OptionGroup

Комментарии

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

Подробнее о создании групп переключателей см. "Применение элементов управления" Руководства разработчика..

Пример

В следующем примере создается элемент управления OptionGroup, который помещается в форму. Этот элемент управления содержит три переключателя, и в зависимости от установленного переключателя изображается окружность, эллипс или квадрат. Свойства Buttons и Caption используются для задания текста, отображаемого рядом с каждым из переключателей.

Элемент управления Shape используется для создания окружности, квадрата и эллипса. Событие Click элемента управления OptionGroup использует структуру DO CASE ... ENDCASE и свойство Value для отображения соответствующей фигуры при установке того или иного переключателя.

  Копировать код
frmMyForm = CREATEOBJECT('Form')  && Создаем форму
frmMyForm.Closable = .F.  && Disable the Control menu box 

frmMyForm.AddObject('cmdCommand1','cmdMyCmndBtn')  && добавить командную кнопку
frmMyForm.AddObject('opgOptionGroup1','opgMyOptGrp') && добавить группу переключателей
frmMyForm.AddObject('shpCircle1','shpMyCircle')  && добавить Shape окружность
frmMyForm.AddObject('shpEllipse1','shpMyEllipse')  && добавить Shape эллипс
frmMyForm.AddObject('shpSquare','shpMySquare')  && добавить прямоугольный Shape 

frmMyForm.cmdCommand1.Visible =.T.  && "Quit" Установить видимость командной кнопке

frmMyForm.opgOptionGroup1.Buttons(1).Caption = "\<Circle"
frmMyForm.opgOptionGroup1.Buttons(2).Caption = "\<Ellipse"
frmMyForm.opgOptionGroup1.Buttons(3).Caption = "\<Square"
frmMyForm.opgOptionGroup1.SetAll("Width", 100) && Set Option group width
frmMyForm.opgOptionGroup1.Visible = .T.  && Установить видимость группе переключателей
frmMyForm.opgOptionGroup1.Click  && Показать окружность

frmMyForm.SHOW  && Отобразить форму
READ EVENTS  && Запустить обработку событий

DEFINE CLASS opgMyOptGrp AS OptionGroup  && Создать группу переключателей
   ButtonCount = 3  && с 3-мя переключателями
   Top = 10
   Left = 10
   Height = 75
   Width = 100

   PROCEDURE Click 
      ThisForm.shpCircle1.Visible = .F.  && Скрыть окружность
      ThisForm.shpEllipse1.Visible = .F.  &&Скрыть эллипс
      ThisForm.shpSquare.Visible = .F.  && Скрыть прямоугольник
      
      DO CASE
         CASE ThisForm.opgOptionGroup1.Value = 1
            ThisForm.shpCircle1.Visible = .T. && Показать окружность
         CASE ThisForm.opgOptionGroup1.Value = 2 
            ThisForm.shpEllipse1.Visible = .T.  && Показать эллипс
         CASE ThisForm.opgOptionGroup1.Value = 3 
            ThisForm.shpSquare.Visible = .T.  && Показать прямоугольник

      ENDCASE
ENDDEFINE

DEFINE CLASS cmdMyCmndBtn AS CommandButton  && Создать командную кнопку
   Caption = '\<Quit'  && Текст командной кнопки
   Cancel = .T.  && Установить реакцию по умолчанию на нажатие Esc
   Left = 125  && вертикальное положение кнопки относительно формы
   Top = 210  && горизонтальное положение кнопки относительно формы
   Height = 25  && Высота командной кнопки

   PROCEDURE Click
      CLEAR EVENTS  && остановить обработчик событий и закрыть форму
ENDDEFINE

DEFINE CLASS shpMyCircle AS SHAPE  && Создать окружность
   Top = 10
   Left = 200
   Width = 100
   Height = 100
   Curvature = 99
   BackColor = RGB(255,0,0)  && Красный 
ENDDEFINE

DEFINE CLASS shpMyEllipse AS SHAPE  && Создать эллипс
   Top = 35
   Left = 200
   Width = 100
   Height = 50
   Curvature = 99
   BackColor = RGB(0,128,0)  && Зеленый
ENDDEFINE

DEFINE CLASS shpMySquare AS SHAPE  && Создать прямоугольник
   Top = 10
   Left = 200
   Width = 100
   Height = 100
   Curvature = 0
   BackColor = RGB(0,0,255)  && Голубой
ENDDEFINE

Смотреть также