Иерархия контейнера и класса представляют собой две раздельные сущности. Ссылки на объект связаны с иерархией контейнера, тогда как Visual FoxPro ищет код для события в иерархии класса.
Для управления объектом вам необходимо идентифицировать его относительно иерархии контейнера. Например, для управления элементом на форме в наборе форм, вам необходимы ссылки на набор форм, на форму и затем на элемент.
Вы можете сравнить обращение к объекту внутри иерархии его контейнера, с тем, что вы как бы даете Visual FoxPro адрес вашего объекта. Например. Когда вы описываете расположение дома кому-либо извне вашего теущего местонахождения, вам необходимо указать страну, штат или район, город, улицу и точный номер дома в зависимости от того, насколько далеко от вас находится информируемый. В противном случае может произойти недоразумение.
Приведенный рисунок иллюстрирует возможную ситуацию вложенности контейнеров.

Для запрещения элемента в колонке решетки , вам необходимо предоставить следующий адрес:
![]() | |
---|---|
Formset.Form.PageFrame.Page.; Grid.Column.Control.Enabled = .F. |
Свойство ActiveForm объекта приложения (_VFP) позволяет вам управлять активной формой, даже если вы не знаете имени активной формы. Например, приведенная строка кода изменят цвет фона активной формы, независимо от того, к какому набору форм она принадлежит:
![]() | |
---|---|
_VFP.ActiveForm.BackColor = RGB(255,255,255) |
Аналогично, свойство ActiveControl позволяет вам управлять активным элементов на активной форме. Например, приведенное выражение, введенное в окно Watch отобразит имя активного элемента на форме, как если бы вы выбрали элемент интерактивно:
![]() | |
---|---|
_VFP.ActiveForm.ActiveControl.Name |
Относительное обращение
Когда вы обращаетесь к объектам из иерархии контейнера (например, в событии Click командной кнопки на форме или в наборе форм), вы можете использовать некоторые ярлыки для идентификации объекта, которым вы желаете управлять. В приведенной ниже таблице перечислены свойства или ключевые слока, которые облгчают обращение к объекту внутри иерархии объекта:
Свойство или ключевое слово | Ссылка |
---|---|
Ближайший контейнер объекта. | |
Сам объект. | |
Форма, которая содержит данный объект. | |
Набор форм, который содержит данный объект. |
![]() |
---|
Вы можете использовать THIS, THISFORM и THISFORMSET только в методах или в процедурных кодах событий. |
В приведенной ниже таблице приведены примеры использования THISFORMSET, THISFORM, THIS и Parent для установки свойств объекта:
Команда | Где включить эту команду |
---|---|
|
В процедурном коде события или коде метода любого элемента на форме или в наборе форм. |
|
В процедурном коде события или коде метода любого элемента на той же самой форме, где располагается этот |
|
В процедурном коде события или коде метода любого элемента, чей заголовок вы желаете изменить. |
|
В процедурном коде события или коде метода любого элемента в том же самом контейнере, в котором находится элемент, из кода которого меняется свойство родительского контейнера. (Выделено переводчиком. Перевод изменен сознательно, дабы исключить двоякость толкования, приведенного в оригинале). |