Выполняет программный код события или метода родительского класса, от которого порожден данный подкласс, с аналогичным именем события или метода.

Например, если вы поместите рассматриваемую функцию DODEFAULT( ) в код события Click данного подкласса, Visual FoxPro выполнит программный код события Click самого родительского класса. Оператор области разрешения ссылки (::), в отличие от функции DODEFAULT( ), выполняет программный код события или метода родительского класса, имеющих другое имя (наименование).

NoteПримечание

Функцию DODEFAULT( ) вы можете расместить только в программном коде соответствующего события или метода.

DODEFAULT( [ eParameter1 [, eParameter2] ...] )

Параметры

eParameter1[, eParameter2] ...

Определяет список необязательных параметров соответствующего события или метода, который должен быть выполнен.

Expand imageВозвращаемое значение

Соответствующих типов: Character, Numeric, Currency, Date, DateTime, Logical, или Memo

Expand imageКомментарии

Возвращаемое значение функцией DODEFAULT( ) определяется соответствующим программным кодом рассматриваемого события или метода.

В версиях, до Visual FoxPro 8.0, вы не могли выполнять вызов функции DODEFAULT( ) в программных кодах событий или методов, которые отсутствуют в соответствующем родительском классе, при этом система Visual FoxPro генерировала соответствующую ошибку: "Property name is not found (Error 1734)" (Указанное свойство Отсутствует), возвращалось значение = True (.T.), а указанная функция DODEFAULT( ) - игнорировалась, вместе с задаваемыми параметрами. Однако, в настоящей версии Visual FoxPro, также происходит игнорирование данной ситуации, указанная выше ошибка подавляется, но следующие ситуации продолжают проявляться:

  • Visual FoxPro игнорирует все переданные параметры в программный код метода, так как метод отсутствует.

  • Visual FoxPro всегда возвращает значение = True (.T.), что является стандартным возвратом любой функции, при отсутствии явного оператора RETURN.

Данная ситуация имеет место в следующем случае:

  • Определен некоторый метод в рассматриваемом классе. Например, в строке: x.Test(), в ранних версиях, меньше чем Visual FoxPro 8.0 возникала ошибка, в настоящий момент - она отсутствует:

      CopyCode imageКопировать Код
    CLEAR
    x=CREATEOBJECT("s1")
    x.ReadMethod("Init")
    x.Test()

    DEFINE CLASS s1 AS Session
    PROCEDURE Test
    DODEFAULT()
    ENDPROC
    PROCEDURE ReadMethod(cMethod)
    DODEFAULT(cMethod)
    ENDPROC
    PROCEDURE Error(nError, cMethod, nLine)
    ? "Error:", nError, cMethod, nLine
    ENDPROC
    ENDDEFINE
  • Внутренний метод помечен опцией HIDDEN для родительского класса. Например:

      CopyCode imageКопировать Код
    CLEAR
    x=CREATEOBJECT("s2")
    x.Test()

    DEFINE CLASS s2 AS s1
    PROCEDURE Test
    THIS.ReadMethod("Init")
    ENDPROC
    PROCEDURE ReadMethod(cMethod)
    DODEFAULT(cMethod)
    ENDPROC
    ENDDEFINE

    DEFINE CLASS s1 AS Session
    HIDDEN PROCEDURE ReadMethod(cMethod)
    DODEFAULT(cMethod)
    ENDPROC
    PROCEDURE Error(nError, cMethod, nLine)
    ? "Error:", nError, cMethod, nLine
    ENDPROC
    ENDDEFINE

Начиная с версии Visual FoxPro 7.0, вызов внутреннего метода базового класса, содержащего рассматриваемую функцию DODEFAULT( ) не приводит к сообщению об ошибке. Например:

  CopyCode imageКопировать Код
CLEAR
x=CREATEOBJECT("s1")
x.ReadMethod("Init")

DEFINE CLASS s1 AS Session
PROCEDURE ReadMethod(cMethod)
DODEFAULT(cMethod)
ENDPROC
PROCEDURE Error(nError, cMethod, nLine)
? "Error:", nError, cMethod, nLine
ENDPROC
ENDDEFINE

Expand imageСм. также