Возвращает позицию или размеры элемента управления или объекта относительно его формы.

OBJTOCLIENT(ObjectName, nPosition)

Параметры

ObjectName

Определяет имя элемента управления или объекта, для которого возвращена позиция на форме.
nPosition

Определяет, какое положение или размер элемента управления или объекта на форме возвращается. Следующая таблица перечисляет значения для nPosition и соответствующей позиции или размера для возвращения.

nPosition Позиция или измерение

1

Top

2

Left

3

Width

4

Height

Возвращаемое значение

Числовое

Замечания

OBJTOCLIENT( ) возвращает позицию или размер элемента управления или объекта относительно клиентской области формы, на которой он находится. Например, элемент управления или объект могут быть помещены в страницу в страничном фрейме, и страничный фрейм помещен на форму. Свойства Top , Left , Width , и Height возвращают позицию или размер элемента управления или объекта относительно страницы на который он расположен. Однако, Вы можете использовать OBJTOCLIENT( ) для определения позиции или размера элемента управления или объекта относительно формы, в которой страница помещена.

Значение, возвращенное OBJTOCLIENT( ) выражается в пикселях.

Пример

Следующие пример использует OBJTOCLIENT( ) чтобы отобразить позиции и размеры двух чекбоксов относительно формы, в которой они помещены. Свойства Top , Left , Width , and Height также используются, чтобы отобразить позиции и размеры этих двух чебоксов относительно страничного блока, в котором они помещены.

Кнопка и страничный фрейм помещены в форму. Свойство PageCount используется, чтобы определить количество страниц на страничном блоке. Свойство Вкладки установлено в истину (.T). чтобы задать, что страничный фрейм имеет вкладки для каждой страницы. Чекбоксы помещены в каждую страницу в разные позиции.

Когда переключается чекбокс, выполняется процедура Click для чекбокса. Если флажок чекбокса  установлен, свойства Top , Left , Width , and Height используются, чтобы отобразить позиции и размеры чекбокса относительно страничного фрейма, и OBJTOCLIENT( ) используется, чтобы отобразить позиции и размеры чекбокса относительно формы. Если флажок чекбокс сброшен, главное окно Microsoft Visual FoxPro очищается.

Скопировать код
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

См. Также