Использование вложенных объектов
В Visual FoxPro имеются базовые классы, предназначенные для создания вложенных объектов, например, класс Grid (Таблица). При ссылке на вложенный объект необходимо перечислить все объекты, в которые он входит, разделяя элементы списка точками. Например, ссылка на столбец colcustomerid объекта customer типа Grid (Таблица) определяется следующим образом:
Customer.colCustomerld
Ссылка такого типа называется абсолютной. В Visual FoxPro кроме абсолютной ссылки, которая при большой глубине вложения объекта является слишком громоздкой, вы можете использовать относительные ссылки, т. е. ссылки относительно активных в данный момент объектов (сам объект, форма, в которую входит объект, и группа форм), что значительно сокращает список объектов ссылки и позволяет получить доступ к объекту, даже если вы не знаете его имени.
Ссылка на активную форму осуществляется с помощью свойства ActiveForm (Активная форма) объекта (_SCREEN). Например, следующее выражение позволяет изменить заголовок активной формы:
_SCREEN.ActiveForm.Caption= "Заголовок формы"
Аналогично, свойство ActiveControl (Активный элемент управления) позволяет получить доступ к активному объекту формы, а свойство ActivePage (Активная вкладка) – к активной вкладке формы. Например, следующее выражение позволяет изменить надпись активной кнопки:
_SCREEN.ActiveControl.Caption= "Печать отчета"
При ссылке на вложенный объект вы можете использовать свойство Parent (Родительский) и ключевые слова для идентификации объекта, к которому вы хотите получить доступ. Свойство Parent (Родительский) содержит ссылку на непосредственный контейнер объекта. Список ключевых слов и определяемые ими ссылки приведены в табл. 19.7.
Таблица 19.7. Ключевые слова для идентификации объектов.
Наименование | Ссылка |
---|---|
THIS | На сам объект |
THISFORM | На форму, которая содержит объект |
THISFORMSET | На группу форм, которая содержит объект |
Для примера определим цвет текущего объекта и объекта, являющегося его непосредственным контейнером, а также заголовки формы и группы форм, которые содержат данный объект:
THIS.BackColor=RGB(255.255.255) THIS.Parent.BackColor=RGB(192.0.0) THISFORM.Caption="Форма, содержащая объект" THISFORMSET.Caption="Группа форм, содержащая объект"