Вы моежте создавать методы Access и Assign для новых своих собственных настраиваемых свойств, "родных" свойств Visual FoxPro или уже существующих созданных вами свойств. Вы можете создать из при введении или редактировании свойств. Для получения более подробной информации о методах Access и Assign смотрите описание Методы Access и Assign. Для получения более подробной информации о вводе новых свойств в формы, наборы форм или классы смотрите описание Как: добавить свойства и методы в форму и Как: добавить свойства и методы в классы.

Вы можете создавать методы Access и Assign интерактивно в дизайнераз форм и классов. Для создания методов Access и Assign для свойств формы или набора форм используйте дизайнер форм. Для создания методов Access и Assign для свойств классов элементов управления или других объектов используйте дизайнер классов. Кроме того, вы можете создать методы Access и Assign программно.

Для создания метода Access или Assign при добавлении нового свойства:

  1. В диалоговом окне New Property отметьте чек-боксAccess Method, Assign Method или оба.

  2. Когда вы закончите создание свойства, щелкните на Add.

Когда вы создаете метод Access или Assign, то вновь созданный метод появится в конце списка свойств в окне Properties и будет иметь имя, составленное из имени свойства, дополненного суффиксом _access или _assign.

Для получения более подробной информации смотрите Диалоговое окно New Property.

Для создания метода Access или Assign для "родных" свойств Visual FoxPro:

  1. Если вы работаете с дизайнером форм (Form Designer), то выберите в меню Form пункт New Method.

    - или -

    Если вы работаете с дизайнером классов (Class Designer, то выберите в меню Class пункт New Method.

  2. В боксе Name диалогового окна New Method впечатайте имя родного свойства Visual FoxPro и добавьте к нему суффикс _ACCESS или _ASSIGN.

  3. Когда вы закончите создание метода, щалкните на Add.

Для получения более подробной информации смотрите Диалоговое окно New Method

Для создания метода Access или Assign для уже существующих пользовательских, то есть ваших, свойств:

  1. Если вы работаете с дизайнером форм (Form Designer), то выберите в меню Form пункт Edit Property/Method.

    - или -

    Если вы работаете с дизайнером классов (Class Designer, то выберите в меню Class пункт Edit Property/Method.

  2. В диалоговом окне Edit Property/Method выберите желаемое свойство.

  3. Отметьте чек-боксAccess Method, Assign Method или оба.

  4. Щелкните на Apply и, затем, на Close.

Для получения более подробной информации смотрите Диалоговое окно Edit Property/Method.

Когда вы создаете методы Access или Assign для уже существующих свойств, то вновь созданный метод появится в конце списка свойств в окне Properties и будет иметь имя, составленное из имени свойства, дополненного суффиксом _access или _assign.

Для создания методов Access и Assign программно

  • Используйте команду DEFINE CLASS и включите в нее опцию PROCEDURE.

NoteЗамечание

В методах Assign, вы должны включить команду PARAMETERS или LPARAMETERS для того, чтобы когда вы попытаетесь присвоить значение свойству в run time, Visual FoxPro смог бы акцептировать значение и послать его методу Assign.

Для получения более подробной информации смотрите описание команды DEFINE CLASS.

Например, приведенный ниже пример кода создает класс с именем MyClass с методами Access и Assign, имеющими имена MyProperty_ACCESS и MyProperty_ASSIGN, для пользовательского свойства MyProperty. MyProperty_ACCESS отвечает на запросы значения MyProperty, а MyProperty_ASSIGN отвечает на изменения значения MyProperty.

NoteЗамечание

Метод Assign включает в себя команду LPARAMETERS для того, чтобы он смог принять значение, которое ему посылается.

  CopyCode imageСкопировать код
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 в неотрицательное значение, то метод установить свойство в переданное ему значение.

NoteЗамечание

Метод Assign включает в себя команду LPARAMETERS для того, чтобы он смог принять посылаемое ему значение.

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

  1. В меню Form для дизайнера форм или в меню Class для дизайнера классов выберите New Method.

  2. В диалоговом окне New Method напечатайте THIS_ACCESS.

  3. Щелкните по 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'.

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

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