Выполняет программный код события или метода родительского класса, от которого порожден данный подкласс, с аналогичным именем события или метода.
Например, если вы поместите рассматриваемую функцию DODEFAULT( ) в код события Click данного подкласса, Visual FoxPro выполнит программный код события Click самого родительского класса. Оператор области разрешения ссылки (::), в отличие от функции DODEFAULT( ), выполняет программный код события или метода родительского класса, имеющих другое имя (наименование).
![]() |
---|
Функцию DODEFAULT( ) вы можете расместить только в программном коде соответствующего события или метода. |
DODEFAULT( [ eParameter1 [, eParameter2] ...] ) |
Параметры
- eParameter1[, eParameter2] ...
-
Определяет список необязательных параметров соответствующего события или метода, который должен быть выполнен.
Возвращаемое значение
Соответствующих типов: Character, Numeric, Currency, Date, DateTime, Logical, или Memo
Комментарии
Возвращаемое значение функцией 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 возникала ошибка, в настоящий момент - она отсутствует:Копировать Код
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 для родительского класса. Например:
Копировать Код
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( ) не приводит к сообщению об ошибке. Например:
![]() | |
---|---|
CLEAR |