JavaScript Editor js editor     Web development 

Main Page

Creates a Shape control that displays a box, circle, or ellipse.

ShapeButton screenshot foxpro


A Shape control is a graphical control that displays a box, circle, or ellipse that cannot be changed directly. However, because a Shape control has a full set of properties, events, and methods that other controls have, the Shape control can respond to events and can be changed dynamically at run time.

The Curvature property determines what shape is displayed and can vary from 0 to 99. 0 specifies no curvature and creates square corners; 99 specifies maximum curvature and creates circles and ellipses.

For additional information about creating shapes, see the Form Designer topic and Using Controls.


The following example demonstrates how the Shape control can be used to display a circle, ellipse, or square on a form.

A form is created, and a set of option buttons and a command button are placed on the form. When you click one of the option buttons, the corresponding shape is displayed on the form. The Visible property is set to true (.T.) to display a shape; it is set to false (.F.) to hide the shape before another shape is displayed. The Height, Width, and Curvature properties of each shape determine the type of shape (circle, ellipse, or square) created.

В Copy Code
frmMyForm = CREATEOBJECT('Form')  && Create a Form
frmMyForm.Closable = .F.  && Disable the Control menu box 

frmMyForm.AddObject('cmdCommand1','cmdMyCmndBtn')  && Add Command button
frmMyForm.AddObject('opgOptionGroup1','opgMyOptGrp') && Add Option Group
frmMyForm.AddObject('shpCircle1','shpMyCircle')  && Add Circle Shape
frmMyForm.AddObject('shpEllipse1','shpMyEllipse')  && Add Ellipse Shape
frmMyForm.AddObject('shpSquare','shpMySquare')  && Add Box Shape

frmMyForm.cmdCommand1.Visible =.T.  && "Quit" Command button visible

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.  && Option Group visible
frmMyForm.opgOptionGroup1.Click  && Show the circle

frmMyForm.SHOW  && Display the form
READ EVENTS  && Start event processing

DEFINE CLASS opgMyOptGrp AS OptionGroup  && Create an Option Group
   ButtonCount = 3  && Three Option buttons
   Top = 10
   Left = 10
   Height = 75
   Width = 100

      ThisForm.shpCircle1.Visible = .F.  && Hide the circle
      ThisForm.shpEllipse1.Visible = .F.  && Hide the ellipse
      ThisForm.shpSquare.Visible = .F.  && Hide the square
      DO CASE
         CASE ThisForm.opgOptionGroup1.Value = 1
            ThisForm.shpCircle1.Visible = .T. && Show the circle
         CASE ThisForm.opgOptionGroup1.Value = 2 
            ThisForm.shpEllipse1.Visible = .T.  && Show the ellipse
         CASE ThisForm.opgOptionGroup1.Value = 3 
            ThisForm.shpSquare.Visible = .T.  && Show the square

DEFINE CLASS cmdMyCmndBtn AS CommandButton  && Create Command button
   Caption = '\<Quit'  && Caption on the Command button
   Cancel = .T.  && Default Cancel Command button (Esc)
   Left = 125  && Command button column
   Top = 210  && Command button row
   Height = 25  && Command button height

      CLEAR EVENTS  && Stop event processing, close Form

DEFINE CLASS shpMyCircle AS Shape  && Create a circle
   Top = 10
   Left = 200
   Width = 100
   Height = 100
   Curvature = 99
   BackColor = RGB(255,0,0)  && Red

DEFINE CLASS shpMyEllipse AS Shape  && Create an ellipse
   Top = 35
   Left = 200
   Width = 100
   Height = 50
   Curvature = 99
   BackColor = RGB(0,128,0)  && Green

DEFINE CLASS shpMySquare AS Shape  && Create a square
   Top = 10
   Left = 200
   Width = 100
   Height = 100
   Curvature = 0
   BackColor = RGB(0,0,255)  && Blue

See Also

JavaScript Editor js editor     Web development