OBJTOCLIENT( ) Function Example

The following example uses OBJTOCLIENT( ) to display the positions and dimensions of two check boxes relative to the form they're placed on. The Top, Left, Width, and Height properties are also used to display the positions and dimensions of the two check boxes relative to the page frame on which they're placed.

A command button and a page frame are placed on a form. The PageCount property is used to specify the number of pages on the page frame. The Tabs property is set to true (.T.) to specify that the page frame has tabs for each page. Check boxes are placed on each page in different positions.

When a check box is clicked, the Click procedure for the check box is executed. If the check box is checked, the Top, Left, Width, and Height properties are used to display the positions and dimensions of the check box relative to the page frame, and OBJTOCLIENT( ) is used to display the positions and dimensions of the check box relative to the form. If the check box is unchecked, the main Microsoft Visual FoxPro window is cleared.

CLEAR
STORE _DBLCLICK TO gnDblClick  && Save double-click value
STORE 0.05 TO _DBLCLICK  && Make double-click unlikely

frmMyForm = CREATEOBJECT('Form')  && Create a form
frmMyForm.Closable = .f.  && Disable the window pop-up menu
 
frmMyForm.Move(150,10)  && Move the form

frmMyForm.AddObject('cmbCommand1','cmdMyCmdBtn')  && Add Command button
frmMyForm.AddObject('pgfPageFrame1','pgfMyPageFrame')  && Add PageFrame
frmMyForm.pgfPageFrame1.Page1.AddObject('chkCheckBox1','chkMyCheckBox1')
frmMyForm.pgfPageFrame1.Page2.AddObject('chkCheckBox2','chkMyCheckBox2')

frmMyForm.cmbCommand1.Visible =.T.  && "Quit" Command button visible
frmMyForm.pgfPageFrame1.Visible =.T.  && PageFrame visible
frmMyForm.pgfPageFrame1.Page1.chkCheckBox1.Visible =.T.
frmMyForm.pgfPageFrame1.Page2.chkCheckBox2.Visible =.T.

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

DEFINE CLASS cmdMyCmdBtn 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

   PROCEDURE Click
      CLEAR EVENTS  && Stop event processing, close Form
      CLEAR  && Clear main Visual FoxPro window
      STORE gnDblClick TO _DBLCLICK  && Restore double-click value
ENDDEFINE

DEFINE CLASS pgfMyPageFrame AS PageFrame  && Create PageFrame
   Left = 10  && PageFrame  column
   Top = 10  && PageFrame  row
   Height = 175  && PageFrame  height
   Width = 350  && PageFrame  height
   PageCount = 2  && 2 Pages on the PageFrame
   Tabs = .T.  && Tabs visible
ENDDEFINE

DEFINE CLASS chkMyCheckBox1 AS CheckBox  && Create first Check Box
   Top = 0
   Width = 200
   Caption = 'Display Position'

PROCEDURE Click
   DO CASE
      CASE ThisForm.pgfPageFrame1.Page1.chkCheckBox1.Value = 0
         ACTIVATE SCREEN
         CLEAR
      CASE ThisForm.pgfPageFrame1.Page1.chkCheckBox1.Value = 1
         ACTIVATE SCREEN
         CLEAR
         ? 'Positions relative'
         ? 'to PageFrame:'
         ?
         ? 'Top: '
         ?? ALLTRIM(STR;
            (ThisForm.pgfPageFrame1.Page1.chkCheckBox1.Top))
         ? 'Left: '
         ?? ALLTRIM(STR;
            (ThisForm.pgfPageFrame1.Page1.chkCheckBox1.Left))
         ? 'Width: '
         ?? ALLTRIM(STR;
            (ThisForm.pgfPageFrame1.Page1.chkCheckBox1.Width))
         ? 'Height: '
         ?? ALLTRIM(STR;
            (ThisForm.pgfPageFrame1.Page1.chkCheckBox1.Height))
         ?
         ? 'Positions relative'
         ? 'to Form:'
         ?
         ? 'Top: '
         ?? ALLTRIM(STR(OBJTOCLIENT;
            (ThisForm.pgfPageFrame1.Page1.chkCheckBox1,1)))
         ? 'Left: '
         ?? ALLTRIM(STR(OBJTOCLIENT;
            (ThisForm.pgfPageFrame1.Page1.chkCheckBox1,2)))
         ? 'Width: '
         ?? ALLTRIM(STR(OBJTOCLIENT;
            (ThisForm.pgfPageFrame1.Page1.chkCheckBox1,3)))
         ? 'Height: '
         ?? ALLTRIM(STR(OBJTOCLIENT(ThisForm.pgfPageFrame1.Page1.chkCheckBox1,4)))
   ENDCASE
ENDDEFINE

DEFINE CLASS chkMyCheckBox2 AS CheckBox  && Create second Check Box
   Top = 30
   Left = 175
   Width = 200
   Caption = 'Display Position'

PROCEDURE CLICK
   DO CASE
      CASE ThisForm.pgfPageFrame1.Page2.chkCheckBox2.Value = 0
         ACTIVATE SCREEN
         CLEAR
      CASE ThisForm.pgfPageFrame1.Page2.chkCheckBox2.Value = 1
         ACTIVATE SCREEN
         CLEAR
         ? 'Positions relative'
         ? 'to PageFrame:'
         ?
         ? 'Top: '
         ?? ALLTRIM(STR(ThisForm.pgfPageFrame1.Page2.chkCheckBox2.Top))
         ? 'Left: '
         ?? ALLTRIM(STR;
            (ThisForm.pgfPageFrame1.Page2.chkCheckBox2.Left))
         ? 'Width: '
         ?? ALLTRIM(STR;
            (ThisForm.pgfPageFrame1.Page2.chkCheckBox2.Width))
         ? 'Height: '
         ?? ALLTRIM(STR;
            (ThisForm.pgfPageFrame1.Page2.chkCheckBox2.Height))
         
         ?
         ? 'Positions relative'
         ? 'to Form:'
         ?
         ? 'Top: '
         ?? ALLTRIM(STR(OBJTOCLIENT;
            (ThisForm.pgfPageFrame1.Page2.chkCheckBox2,1)))
         ? 'Left: '
         ?? ALLTRIM(STR(OBJTOCLIENT;
            (ThisForm.pgfPageFrame1.Page2.chkCheckBox2,2)))
         ? 'Width: '
         ?? ALLTRIM(STR(OBJTOCLIENT;
            (ThisForm.pgfPageFrame1.Page2.chkCheckBox2,3)))
         ? 'Height: '
         ?? ALLTRIM(STR(OBJTOCLIENT;
            (ThisForm.pgfPageFrame1.Page2.chkCheckBox2,4)))
   ENDCASE
ENDDEFINE