Executes the parent class event or method of the same name from within a subclass.
For example, if you place DODEFAULT(В ) in the Click event of a subclass, Visual FoxPro executes the Click event of the parent class. The scope resolution operator (::), unlike DODEFAULT(В ), executes a parent class event or method of a different name.
Note: |
---|
You can place DODEFAULT(В ) only within an event or method. |
DODEFAULT( [ eParameter1 [, eParameter2] ...] ) |
Parameters
- eParameter1[, eParameter2] ...
- Specifies parameters that are passed to the parent class event or method.
Return Value
Character, Numeric, Currency, Date, DateTime, Logical, or Memo
Remarks
The value that DODEFAULT(В ) returns is determined by the return value of the event or method.
In versions prior to Visual FoxPro 8.0, you could not call DODEFAULT(В ) in a method that did not exist in the parent class without Visual FoxPro generating an error, "Property name is not found (Error 1734)", returning True (.T.), and disregarding DODEFAULT(В ) and any passed parameters. However, Visual FoxPro now disregards this and does not generate an error, but the following results still occur:
-
Visual FoxPro disregards any parameters that are passed because no code is executed.
-
Visual FoxPro always returns True (.T.), which is the default behavior for any procedure without an explicit RETURN statement.
This behavior affects the following scenarios:
-
Custom methods that are defined in a class. For example, the line,
x.Test()
, generated an error prior to Visual FoxPro 8.0 but no longer does:
В Copy Code 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
-
Native methods that are marked with the HIDDEN key word in the parent class. For example:
В Copy Code 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
Starting in Visual FoxPro 7.0, calling a native method in a base class that contains DODEFAULT(В ) does not cause an error. For example:
В | Copy Code |
---|---|
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 |