Вы моежте создавать методы Access и Assign для новых своих собственных настраиваемых свойств, "родных" свойств Visual FoxPro или уже существующих созданных вами свойств. Вы можете создать из при введении или редактировании свойств. Для получения более подробной информации о методах Access и Assign смотрите описание Методы Access и Assign. Для получения более подробной информации о вводе новых свойств в формы, наборы форм или классы смотрите описание Как: добавить свойства и методы в форму и Как: добавить свойства и методы в классы.
Вы можете создавать методы Access и Assign интерактивно в дизайнераз форм и классов. Для создания методов Access и Assign для свойств формы или набора форм используйте дизайнер форм. Для создания методов Access и Assign для свойств классов элементов управления или других объектов используйте дизайнер классов. Кроме того, вы можете создать методы Access и Assign программно.
Для создания метода Access или Assign при добавлении нового свойства:
-
В диалоговом окне New Property отметьте чек-боксAccess Method, Assign Method или оба.
-
Когда вы закончите создание свойства, щелкните на Add.
Когда вы создаете метод Access или Assign, то вновь созданный метод появится в конце списка свойств в окне Properties и будет иметь имя, составленное из имени свойства, дополненного суффиксом _access или _assign.
Для получения более подробной информации смотрите Диалоговое окно New Property.
Для создания метода Access или Assign для "родных" свойств Visual FoxPro:
-
Если вы работаете с дизайнером форм (Form Designer), то выберите в меню Form пункт New Method.
- или -
Если вы работаете с дизайнером классов (Class Designer, то выберите в меню Class пункт New Method.
-
В боксе Name диалогового окна New Method впечатайте имя родного свойства Visual FoxPro и добавьте к нему суффикс _ACCESS или _ASSIGN.
-
Когда вы закончите создание метода, щалкните на Add.
Для получения более подробной информации смотрите Диалоговое окно New Method
Для создания метода Access или Assign для уже существующих пользовательских, то есть ваших, свойств:
-
Если вы работаете с дизайнером форм (Form Designer), то выберите в меню Form пункт Edit Property/Method.
- или -
Если вы работаете с дизайнером классов (Class Designer, то выберите в меню Class пункт Edit Property/Method.
-
В диалоговом окне Edit Property/Method выберите желаемое свойство.
-
Отметьте чек-боксAccess Method, Assign Method или оба.
-
Щелкните на Apply и, затем, на Close.
Для получения более подробной информации смотрите Диалоговое окно Edit Property/Method.
Когда вы создаете методы Access или Assign для уже существующих свойств, то вновь созданный метод появится в конце списка свойств в окне Properties и будет иметь имя, составленное из имени свойства, дополненного суффиксом _access или _assign.
Для создания методов Access и Assign программно
-
Используйте команду DEFINE CLASS и включите в нее опцию PROCEDURE.
![]() |
---|
В методах Assign, вы должны включить команду PARAMETERS или LPARAMETERS для того, чтобы когда вы попытаетесь присвоить значение свойству в run time, Visual FoxPro смог бы акцептировать значение и послать его методу Assign. |
Для получения более подробной информации смотрите описание команды DEFINE CLASS.
Например, приведенный ниже пример кода создает класс с именем MyClass с методами Access и Assign, имеющими имена MyProperty_ACCESS и MyProperty_ASSIGN, для пользовательского свойства MyProperty. MyProperty_ACCESS отвечает на запросы значения MyProperty, а MyProperty_ASSIGN отвечает на изменения значения MyProperty.
![]() |
---|
Метод Assign включает в себя команду LPARAMETERS для того, чтобы он смог принять значение, которое ему посылается. |
![]() | |
---|---|
DEFINE CLASS MyClass AS Custom MyProperty = 100 PROCEDURE MyProperty_ACCESS WAIT WINDOW 'This is the Access method'; + ' ' + PROGRAM( ) RETURN THIS.MyProperty ENDPROC PROCEDURE MyProperty_ASSIGN LPARAMETERS tAssign WAIT WINDOW 'This is the Assign method'; + ' ' + PROGRAM( ) ENDPROC ENDDEFINE |
Приведенный ниже пример создает класс Form с именем frmMyForm с методом Assign, имеющим имя Left_ASSIGN для родного свойства формы Left. Left_ASSIGN производит простую проверку значения свойства и исполняется, когда производится попытка присвоить этому свойстве какое-то значение. Если вы пытаетесь установить свойство Left в отрицательное значение, метод Assign отобразит сообщение и оставить значение свойства неизмененным. Если вы попытаетесь установить свойство Left в неотрицательное значение, то метод установить свойство в переданное ему значение.
![]() |
---|
Метод Assign включает в себя команду LPARAMETERS для того, чтобы он смог принять посылаемое ему значение. |
![]() | |
---|---|
DEFINE CLASS frmMyForm AS Form PROCEDURE Left_ASSIGN LPARAMETERS tAssign DO CASE CASE tAssign < 0 && Посылается отрицательное значение. WAIT WINDOW 'Value must be greater than 0' OTHERWISE && Посылается положительное значение. THIS.Left = tAssign ENDCASE ENDPROC ENDDEFINE |
Создание методов THIS_ACCESS
Вы можете создать методы THIS_ACCESS из дизайнеров форм, классов или программно.
Для создания метода THIS_ACCESS
-
В меню Form для дизайнера форм или в меню Class для дизайнера классов выберите New Method.
-
В диалоговом окне New Method напечатайте THIS_ACCESS.
-
Щелкните по Add.
Когда метод THIS_ACCESS будет создан, то он появится окне Properties. Для ввода кода в метод, выполните двойной щелчок по имени метода в окне Properties.
Для создания метода THIS_ACCESS программно
-
Используйте команду DEFINE CLASS и включите в нее ключевое слово THIS_ACCESS.
Для получения более подробной информации смотрите описание команды DEFINE CLASS.
Приведенный ниже пример создает класс Form с именем MyForm с методом THIS_ACCESS, который содержит команду LPARAMETER с именем объекта-члена и некоторым исполняемым кодом. Первая строка кода создает форму с именем oTempForm с помощью функции CREATEOBJECT(). Вторая строка кода пытается присвоить значение свойству формы Caption. Это действие исполняет метод THIS_ACCESS и посылает ему имя свойства Caption. THIS_ACCESS отображает имя объекта-члена, или 'Caption' в данном примере, используя команду воспросительного знака (?) и, затем, возвращает объектную ссылку для формы.
Третья строка кода пытается отобразить значение свойства формы Caption, используя команду ?. Это действие повторно исполняет метод THIS_ACCESS, посылает ему имя свойства Caption, отображает 'Caption' и, затем, возвращает объектную ссылку для формы. И, наконец, ображается значение свойства Caption - 'abc'.
![]() | |
---|---|
oTempForm = CREATEOBJECT('MyForm') oTempForm.Caption = 'abc' ? oTempForm.Caption DEFINE CLASS MyForm AS Form PROCEDURE THIS_ACCESS LPARAMETER cMemberName IF cMemberName = 'caption' ? cMemberName ENDIF RETURN THIS ENDPROC ENDDEFINE |
Для получения более подробной информации смотрите описание команды DEFINE CLASS.