PROCEDURE main() LOCAL oCrt, oHadFocus // oCrt := DerivedCrt():init(NIL, NIL, {50,50}, 25, 80, 'Testing', .t.) oCrt := NewCrt():init(NIL, NIL, {50,50}, 25, 80, 'Testing', .t.) oCrt:create() oHadFocus := SetAppFocus(oCrt) oCrt:say() SetAppFocus(oHadFocus) RETURN PROCEDURE AppSys() RETURN PROCEDURE DbeSys() RETURN CLASS DerivedCrt FROM XbpCrt EXPORTED: INLINE METHOD init(oParent, oOwner, aPos, nRowCount, nColCount, cTitle, lVisible) RETURN XbpCrt():init(oParent, oOwner, aPos, nRowCount, nColCount, cTitle, lVisible) INLINE METHOD create(oParent, oOwner, aPos, nRowCount, nColCount, cTitle, lVisible) RETURN XbpCrt():create(oParent, oOwner, aPos, nRowCount, nColCount, cTitle, lVisible) INLINE METHOD destroy() RETURN XbpCrt():destroy() INLINE METHOD say SetColor('n/w*') cls SetPos(12, 30) QQOut('Type something') InKey(0) RETURN Self ENDCLASS CLASS NewCrt FROM XbpCrt EXPORTED: METHOD init METHOD create METHOD destroy INLINE METHOD say SetColor('n/w*') cls SetPos(12, 30) QQOut('Type something') InKey(0) RETURN Self ENDCLASS METHOD NewCrt:init(oParent, oOwner, aPos, nRowCount, nColCount, cTitle, lVisible) RETURN XbpCrt():init(oParent, oOwner, aPos, nRowCount, nColCount, cTitle, lVisible) METHOD NewCrt:create(oParent, oOwner, aPos, nRowCount, nColCount, cTitle, lVisible) RETURN XbpCrt():create(oParent, oOwner, aPos, nRowCount, nColCount, cTitle, lVisible) METHOD NewCrt:destroy() RETURN XbpCrt():destroy()