Files
harbour-core/harbour/tests/omacro.prg
Viktor Szakats 261f8551e7 2012-10-15 18:32 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/make.hb
  * extras/httpsrv/uhttpd.prg
  * tests/ac_test2.prg
  * tests/alias.prg
  * tests/begin.prg
  * tests/db_brows.prg
  * tests/memfile.prg
  * tests/omacro.prg
  * tests/sbartest.prg
  * tests/switch.prg
  * tests/testget.prg
  * tests/testpp.prg
  * tests/tstblock.prg
  * tests/varparam.prg
    * use m_ prefix for PRIVATEs, p_ for PUBLICs and s[c]_
      for STATICs
    % optimized out some PRIVATEs
    % use hb_Disp*() instead of @ SAY in db_browse.prg
      (this fixes cursor flickering)

  * ChangeLog
    ! typos

  * utils/hbtest/rt_class.prg
  * utils/hbtest/rt_math.prg
    * formatting
2012-10-15 16:35:48 +00:00

55 lines
1.0 KiB
Plaintext

/*
* $Id$
*/
/*
* This file tests support for passing object methods and vars
* using macro syntax
*/
PROCEDURE Main()
LOCAL obj := ErrorNew()
MEMVAR m_send1
MEMVAR m_send2
PRIVATE m_send1 := "_description"
PRIVATE m_send2 := "_tries"
obj:tries := 1
obj:&m_send1 := "test"
obj:tries += 1
obj:tries++
++obj:tries
WITH OBJECT obj
:tries += 1
:tries++
++:tries
/*
Notice that for post/pre increment decrement operators and
for assigments (:=,+=,-=,*=,/=) the macro have to
start from the underscore symbol '_'
To access the object variable using macro the '_' should be omitted
*/
:&m_send2 += 1
:&m_send2++
++:&m_send2
++:&( m_send2 )
:&( m_send2 ) := :&( SubStr( m_send2, 2 ) ) + 1
:&m_send1 += " description"
:&( m_send1 ) += " of "
ENDWITH
obj:&( "_" + SubStr( m_send1, 2 ) ) += "Error object"
? m_send1, "=", obj:&( SubStr( m_send1, 2 ) )
? m_send2, "=", obj:tries
RETURN