Следующий пример устанавливает свойства и вызывает на выполнение код события различных объектов внутри набора форм FormSet.

Пример набора форм в Дизайнере Форм

FoxProLeftFormTextInput screenshot

Два check boxes и кнопка на форме frmLeft имеют код событий, связаных с ними. Наименование text box на frmLeft - txtInput.

Код событий для объектов формы LeftForm
Объект Событие Код

chkItalic

Click

THISFORM.txtInput.FontItalic = ;

THIS.Value

chkBold

Click

THIS.txtInput.FontBold = THIS.Value

cmdClear

Click

THISFORM.txtInput.Value = ""

THISFORM.txtInput.FontBold = .F.

THISFORM.txtInput.FontItalic = .F.

THISFORM.chkItalic.Value = .F.

THISFORM.chkBold.Value = .F.

Установка Свойств Другого Элемента Управления на Тойже Форме

Вы можете устанавливать свойства одного объекта в событии другого, используя ключевое слово THISFORM или свойство Parent. Следующие две команды выполняются, когда пользователь щелкает мышкой на Italic(курсив) и Bold(полужирный) check boxes, устанавливая предназначенное свойство text box:

  CopyCode imageCopy Code
THISFORM.txtInput.FontItalic = .T.
THIS.Parent.txtInput.FontBold = .T.

В этом случае, THISFORM и THIS.Parent взаимозаменяемы.

Пример form set в момент выполнения

FoxProLeftFormUserInput screenshot

Код события click для кнопки cmdClear использует THISFORM для переустановки значений свойств других эелементов управления данной формы.

Установка Свойств Другой Формы

Вы также можете устанавливать свойства одной форма из другой. Форма Form2 содержит пять кнопок. Событие Click содержит следующий код:

  CopyCode imageCopy Code
THISFORMSET.frmLeft.Caption = ;
 ALLTRIM(ThisFormSet.frmLeft.txtInput.Value)

Заметьте, что необходимо ссылаться на form set и form, когда устанавливаете свойства из другой формы.

Пользователь щелкает на кнопке "Change Left Form Caption" на Правой Форме

FoxPro Object Form

Код события click второй кнопки на форме frmRight демонстрирует установку свойства формы через ее объект:

  CopyCode imageCopy Code
THISFORM.Caption = ;
 ALLTRIM(ThisFormSet.frmLeft.txtInput.Value)

Если пользователь щелкнет на этой кнопке, то заглавие правой фориы frmRight заменится на значение введенное в text box на левой форме frmLeft.

Доспут к Объектам на Различных Формах

Следующий код события Click кнопки Change Bold Setting меняет значение Bold check box на форме frmLeft и вызывает связанное с этим событие данного элемента управления.

  CopyCode imageCopy Code
THISFORMSET.frmLeft.chkBold.Value = ;
   NOT THISFORMSET.frmLeft.chkBold.Value
THISFORMSET.frmLeft.chkBold.InteractiveChange

Последняя строка в примере вызывает событие InteractiveChange в chkBold. Вы могли бы вызвать эту процедуру и с помощью следующей команды:

  CopyCode imageCopy Code
THISFORMSET.frmForm1.chkBold.InteractiveChange( )

Если вызов данной процедуры опустить, то значение check box изменится, но свойство FontBold в text box не изменится никогда.

Пользователь щелкнул на кнопке "Change Bold Setting" на правой форме

FoxPro Object Form Settings

Проверка Свойств и Вызов Метода Другой Формы

Следующий код в событии Click кнопки "Hide Left Form" прячет или показывает левую форму frmLeft, в зависимости от значения свойства Visible, и изменяет заголовок кнопки на подходящий:

  CopyCode imageCopy Code
IF ThisFormSet.frmLeft.Visible
   ThisFormSet.frmLeft.Hide
   THIS.Caption = "Show Left Form"
ELSE
   ThisFormSet.frmLeft.Show
   THIS.Caption = "Hide Left Form"
ENDIF

Обратите внимание, что ключевое слово THIS примененное в коде события элемента управления, ссылается на свойства данного элемента.

Пользавотель нажимает кнопку "Hide Left Form" на Правой Форме

FoxProRightForm screenshot

Следующая команда в событие Click кнопки "Quit" осводождает данный form set, что приводит к закрытию обеих форм:

  CopyCode imageCopy Code
RELEASE ThisFormSet

Смотрите Также