* tests/ac_test2.prg
* tests/adirtest.prg
* tests/ainstest.prg
* tests/altdtest.prg
* tests/and_or.prg
* tests/array16.prg
* tests/arrayidx.prg
* tests/arrays.prg
* tests/arreval.prg
* tests/arrindex.prg
* tests/atest.prg
* tests/box.prg
* tests/boxtst2.prg
* tests/byref.prg
* tests/calling.prg
* tests/clasinit.prg
* tests/clasname.prg
* tests/classch.prg
* tests/classes.prg
* tests/clsdata.prg
* tests/cmphello.prg
* tests/codebl.prg
* tests/codebloc.prg
* tests/comments.prg
* tests/curdirt.prg
* tests/db_brows.prg
* tests/dbevalts.prg
* tests/docase.prg
* tests/dosshell.prg
* tests/dupvars.prg
* tests/dynobj.prg
* tests/dynsym.prg
* tests/exittest.prg
* tests/extend1.prg
* tests/exthrb.prg
* tests/fib.prg
* tests/fornext.prg
* tests/fortest.prg
* tests/funcarr.prg
* tests/gfx.prg
* tests/gtchars.prg
* tests/gtcolors.prg
* tests/gtkeys.prg
* tests/hello.prg
* tests/ifelse.prg
* tests/inherit.prg
* tests/inhprob.prg
* tests/inifiles.prg
* tests/initexit.prg
* tests/inline.prg
* tests/iotest.prg
* tests/iotest2.prg
* tests/keywords.prg
* tests/langmsg.prg
* tests/linecont.prg
* tests/lnlenli1.prg
* tests/lnlenli2.prg
* tests/longdev.prg
* tests/longstr.prg
* tests/longstr2.prg
* tests/mathtest.prg
* tests/memfile.prg
* tests/memory.prg
* tests/readhrb.prg
* tests/rto_get.prg
* tests/rto_tb.prg
* tests/scroll.prg
* tests/seconds.prg
* tests/set_test.prg
* tests/speedold.prg
* tests/stripem.prg
* tests/t1.prg
* tests/test_all.prg
* tests/testbrw.prg
* tests/testhtml.prg
* tests/testid.prg
* tests/testpre.prg
* tests/testwarn.prg
* tests/ticktime.prg
* tests/tstchbx.prg
* tests/tstmacro.prg
* tests/tstprag.prg
* tests/vec1.prg
* tests/videotst.prg
* tests/vidtest.prg
* cleaning up tests (roughly complete)
115 lines
2.0 KiB
Plaintext
115 lines
2.0 KiB
Plaintext
/*
|
|
* $Id$
|
|
*/
|
|
|
|
PROCEDURE Main()
|
|
|
|
LOCAL o := HBObject():New()
|
|
|
|
QOut( "o:Data1 => ", o:Data1 )
|
|
QOut( "o:ClassData1 => ", o:ClassData1 )
|
|
QOut( "o:Data2 => ", o:Data2 )
|
|
QOut( "o:ClassData2 => ", o:ClassData2 )
|
|
o:Test()
|
|
|
|
RETURN
|
|
|
|
FUNCTION TBaseObject()
|
|
|
|
STATIC oClass
|
|
|
|
IF oClass == NIL
|
|
oClass := HBClass():New( "TBaseObject" )
|
|
oClass:AddData( "Data1" )
|
|
oClass:AddClassData( "ClassData1" )
|
|
oClass:AddMethod( "NewBase", @NewBase() )
|
|
oClass:AddMethod( "Test", @Test() )
|
|
oClass:AddMethod( "Method1", @Method1Base() )
|
|
oClass:AddMethod( "Method2", @Method2Base() )
|
|
oClass:Create()
|
|
ENDIF
|
|
|
|
RETURN oClass:Instance()
|
|
|
|
STATIC FUNCTION NewBase()
|
|
|
|
LOCAL self := QSelf()
|
|
|
|
::Data1 := 1
|
|
::ClassData1 := "A"
|
|
|
|
RETURN self
|
|
|
|
STATIC FUNCTION Test()
|
|
|
|
LOCAL self := QSelf()
|
|
|
|
QOut( "Inside ::Test() " )
|
|
QOut( "calling ::Method1() " )
|
|
::Method1()
|
|
|
|
RETURN self
|
|
|
|
STATIC FUNCTION Method1Base()
|
|
|
|
LOCAL self := QSelf()
|
|
|
|
QOut( "I am Method1 from TBaseObject" )
|
|
::Method2()
|
|
|
|
RETURN self
|
|
|
|
STATIC FUNCTION Method2Base()
|
|
|
|
LOCAL self := QSelf()
|
|
|
|
QOut( "I am Method2 from TBaseObject" )
|
|
|
|
RETURN self
|
|
|
|
FUNCTION HBObject()
|
|
|
|
STATIC oClass
|
|
|
|
IF oClass == NIL
|
|
oClass := HBClass():New( "HBObject", "TBaseObject" )
|
|
oClass:AddData( "Data2" )
|
|
oClass:AddClassData( "ClassData2" )
|
|
oClass:AddMethod( "New", @New() )
|
|
oClass:AddMethod( "Method1", @Method1() )
|
|
oClass:AddMethod( "Method2", @Method2() )
|
|
oClass:Create()
|
|
ENDIF
|
|
|
|
RETURN oClass:Instance()
|
|
|
|
STATIC FUNCTION New()
|
|
|
|
LOCAL self := QSelf()
|
|
|
|
::TBaseObject:NewBase()
|
|
::Data1 := 1
|
|
::ClassData1 := "A"
|
|
::Data2 := 2
|
|
// ClassData2 override ClassData1
|
|
::ClassData2 := "B"
|
|
|
|
RETURN self
|
|
|
|
STATIC FUNCTION Method1()
|
|
|
|
LOCAL self := QSelf()
|
|
|
|
QOut( "I am Method1 from HBObject" )
|
|
::TBaseObject:Method1()
|
|
|
|
RETURN self
|
|
|
|
STATIC FUNCTION Method2()
|
|
|
|
LOCAL self := QSelf()
|
|
|
|
QOut( "I am Method2 from HBObject" )
|
|
|
|
RETURN self
|