Files
harbour-core/harbour/tests/objarr.prg
Viktor Szakats 7e7aaf9044 2012-10-02 13:52 UTC+0200 Viktor Szakats (harbour syenar.net)
* tests/adirtest.prg
  * tests/ainstest.prg
  * tests/and_or.prg
  * tests/array16.prg
  * tests/arrayidx.prg
  * tests/arrays.prg
  * tests/arrindex.prg
  * tests/atest.prg
  * tests/base64.prg
  * tests/byref.prg
  * tests/calling.prg
  * tests/cdow.prg
  * tests/clasinit.prg
  * tests/clasname.prg
  * tests/classch.prg
  * tests/classes.prg
  * tests/clsdata.prg
  * tests/cmphello.prg
  * tests/codebl.prg
  * tests/curdirt.prg
  * tests/cursrtst.prg
  * tests/dates.prg
  * tests/dates2.prg
  * tests/dates3.prg
  * tests/debugtst.prg
  * tests/delimtst.prg
  * tests/devtest.prg
  * tests/dirtest.prg
  * tests/disptest.prg
  * tests/docase.prg
  * tests/dosshell.prg
  * tests/dttest.prg
  * tests/dupvars.prg
  * tests/dynobj.prg
  * tests/dynsym.prg
  * tests/exittest.prg
  * tests/extend1.prg
  * tests/fib.prg
  * tests/fornext.prg
  * tests/fortest.prg
  * tests/funcarr.prg
  * tests/hbdoctst.prg
  * tests/hsxtest.prg
  * tests/ifelse.prg
  * tests/inifiles.prg
  * tests/initexit.prg
  * tests/inkeytst.prg
  * tests/inline_c.prg
  * tests/inline.prg
  * tests/iotest.prg
  * tests/iotest2.prg
  * tests/ipclnt.prg
  * tests/ipsvr.prg
  * tests/longstr.prg
  * tests/mathtest.prg
  * tests/memvar.prg
  * tests/multiarg.prg
  * tests/nums.prg
  * tests/objarr.prg
  * tests/objasign.prg
  * tests/objects.prg
  * tests/os.prg
  * tests/overload.prg
  * tests/parexpr.prg
  * tests/passref.prg
  * tests/procname.prg
  * tests/recursiv.prg
  * tests/returns.prg
  * tests/round.prg
  * tests/sdf_test.prg
  * tests/seconds.prg
  * tests/set_num.prg
  * tests/set_test.prg
  * tests/sound.prg
  * tests/statfun.prg
  * tests/statics.prg
  * tests/statics1.prg
  * tests/statics2.prg
  * tests/strdelim.prg
  * tests/stripem.prg
  * tests/t1.prg
  * tests/test.prg
  * tests/testerro.prg
  * tests/testfor.prg
  * tests/testget.prg
  * tests/testhtml.prg
  * tests/testid.prg
  * tests/testop.prg
  * tests/teststr.prg
  * tests/testtok.prg
  * tests/testvars.prg
  * tests/tflock.prg
  * tests/tstalias.prg
  * tests/version.prg
  * tests/videotst.prg
  * tests/while.prg
  * tests/wvtext.prg
    ! various cleanups and fixes after running almost all of them

  * ChangeLog
    * changed hbqt new repository to its new location:
        http://sourceforge.net/projects/qtcontribs/
2012-10-02 11:59:22 +00:00

95 lines
1.8 KiB
Plaintext

/*
* $Id$
*/
//
// Object Array syntax test
//
// Written by Eddie Runia <eddie@runia.com>
// www - http://harbour-project.org
//
// Placed in the public domain
//
PROCEDURE Main()
LOCAL o := TNumber():New()
? "Direct reference : ", hb_ValToStr( o:x )
o:x[ 1 ] := "I am a data"
o:Get()[ 2 ] := "I am a method"
? "Assign text : ", hb_ValToStr( o:x )
o:x[ 1 ] := 4
o:Get()[ 2 ] := 4
? "Assign 4 : ", hb_ValToStr( o:x )
? "Post increment : ", o:x[ 1 ]++ , o:Get()[ 2 ]++
? "After : ", o:x[ 1 ] , o:Get()[ 2 ]
? "Pre decrement : ", --o:x[ 1 ] , --o:Get()[ 2 ]
? "After : ", o:x[ 1 ] , o:Get()[ 2 ]
o:x[ 1 ] += 2
o:Get()[ 2 ] += 2
? "Plus 2 : ", hb_ValToStr( o:x )
o:x[ 1 ] -= 3
o:Get()[ 2 ] -= 3
? "Minus 3 : ", hb_ValToStr( o:x )
o:x[ 1 ] *= 3
o:Get()[ 2 ] *= 3
? "Times 3 : ", hb_ValToStr( o:x )
o:x[ 1 ] /= 1.5
o:Get()[ 2 ] /= 1.5
? "Divide by 1.5 : ", hb_ValToStr( o:x )
o:x[ 1 ] %= 4
o:Get()[ 2 ] %= 4
? "Modulus 4 : ", hb_ValToStr( o:x )
o:x[ 1 ] ^= 3
o:Get()[ 2 ] ^= 3
? "To the power 3 : ", hb_ValToStr( o:x )
? "Global stack"
Debug( __dbgVMStkGList() )
? "Statics"
Debug( __dbgVMVarSList() )
RETURN
FUNCTION TNumber() // Very simple class
STATIC oNumber
IF oNumber == NIL
oNumber := HBClass():New( "TNumber" )
oNumber:AddData ( "x" )
oNumber:AddMethod( "Get", @Get() )
oNumber:AddMethod( "New", @New() )
oNumber:Create()
ENDIF
RETURN oNumber:Instance()
STATIC FUNCTION New()
LOCAL self := QSelf()
::x := { 1, 1 }
RETURN self
STATIC FUNCTION Get()
LOCAL self := QSelf()
RETURN ::x
STATIC PROCEDURE Debug()
RETURN