Files
harbour-core/harbour/website/samples/codebl.prg.html
Viktor Szakats e89c2b43ce 2012-11-16 17:50 UTC+0100 Viktor Szakats (vszakats syenar.net)
* extras/hbvpdf/hbvpdf.hbx
    ! two more corrections

  * contrib/gtwvg/tests/_dyndlgs.prg
  * contrib/hbct/doc/en/finan.txt
  * contrib/hbct/readme.txt
  * contrib/hbct/tests/asciisum.prg
  * contrib/hbct/tests/trig.prg
  * contrib/hbfoxpro/dll.prg
  * contrib/hbhttpd/core.prg
  * contrib/hbhttpd/widgets.prg
  * contrib/hbmisc/fcomma.prg
  * contrib/hbmlzo/tests/test.prg
  * contrib/hbmxml/tests/custom.prg
  * contrib/hbmzip/readme.txt
  * contrib/hbnf/nwuid.prg
  * contrib/hbnf/vidcur.prg
  * contrib/hbtip/client.prg
  * contrib/hbwin/tests/olesrv1.prg
  * contrib/hbwin/tests/testprn.prg
  * contrib/xhb/cstruct.prg
  * contrib/xhb/hjwindow.prg
  * contrib/xhb/hterrsys.prg
  * contrib/xhb/htjlist.prg
  * contrib/xhb/htmutil.prg
  * contrib/xhb/tests/decode.prg
  * contrib/xhb/xhberr.prg
  * doc/cmdline.txt
  * doc/en/objfunc.txt
  * doc/en/set.txt
  * doc/en/string.txt
  * doc/pragma.txt
  * extras/gfspell/spell.prg
  * extras/gtwvw/docs/gtwvw.txt
  * extras/gtwvw/tests/wvwtest9.prg
  * extras/hbvpdf/core.prg
  * extras/hbvpdf/fonts.prg
  * extras/hbvpdf/tests/pdf_demo.prg
  * extras/httpsrv/cgifunc.prg
  * extras/httpsrv/home/counter.html
  * extras/httpsrv/home/testxmldb.html
  * extras/httpsrv/session.prg
  * extras/httpsrv/uhttpd.prg
  * tests/base64.prg
  * tests/boxtest.prg
  * tests/db_brows.prg
  * tests/ddate.prg
  * tests/inherit.prg
  * tests/langmsg.prg
  * tests/mathtest.prg
  * tests/memtst.prg
  * tests/readhrb.prg
  * tests/switch.prg
  * tests/testsha2.prg
  * tests/testwarn.prg
  * tests/tstdbi.prg
  * tests/utf8at.prg
  * utils/hbtest/hbtest.prg
  * utils/hbtest/rt_class.prg
  * utils/hbtest/rt_date.prg
  * utils/hbtest/rt_hvma.prg
  * utils/hbtest/rt_math.prg
  * utils/hbtest/rt_misc.prg
  * utils/hbtest/rt_trans.prg
  * website/news.html
  * website/news1.html
  * website/samples.html
  * website/samples/arreval.html
  * website/samples/codebl.prg.html
  * website/samples/dates3.html
  * website/samples/switch.prg.html
  * website/samples/testcgi.prg.html
  * website/samples/tstmacro.prg.html
    * rerun case fixer script after applying
      some fixes, and this time it run fully
      automatically.
2012-11-16 16:53:48 +00:00

194 lines
18 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>codebl.prg</TITLE>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<META content="MSHTML 6.00.6000.16386" name=GENERATOR>
<STYLE type=text/css>
<!--
body { color: #000000; background-color: #FFFFFF; }
.any1-activedot { color: #800080; }
.any1-comment { color: #008080; }
.any1-constant { color: #800080; }
.any1-escapeampersand { color: #00FF00; font-weight: bold; }
.any1-function { color: #808000; }
.any1-identifier { color: #000000; }
.any1-number { color: #FF0000; }
.any1-preprocessor { }
.any1-reservedword { color: #800000; }
.any1-space { }
.any1-string { color: #0000FF; }
.any1-symbol { }
.any1-variable { color: #808000; }
-->
</STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<PRE><CODE><SPAN style="FONT: 10pt Courier New"><SPAN class=any1-reservedword>STATIC</SPAN><SPAN class=any1-space> cbStatic
</SPAN><SPAN class=any1-reservedword>Function</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>Main</SPAN><SPAN class=any1-symbol>()
</SPAN><SPAN class=any1-reservedword>Local</SPAN><SPAN class=any1-space> a := </SPAN><SPAN class=any1-variable>TestBlocks</SPAN><SPAN class=any1-symbol>()
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> cb
</SPAN><SPAN class=any1-function>qout</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>eval</SPAN><SPAN class=any1-symbol>( a[ </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ] ) ) </SPAN><SPAN class=any1-comment>// 23
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>qout</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>eval</SPAN><SPAN class=any1-symbol>( a[ </SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-space> ], </SPAN><SPAN class=any1-number>42</SPAN><SPAN class=any1-space> ) ) </SPAN><SPAN class=any1-comment>// 42
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>qout</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>eval</SPAN><SPAN class=any1-symbol>( a[ </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ] ) ) </SPAN><SPAN class=any1-comment>// 42
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>qout</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-function>eval</SPAN><SPAN class=any1-symbol>( a[ </SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-space> ], </SPAN><SPAN class=any1-number>15</SPAN><SPAN class=any1-space> ) ) </SPAN><SPAN class=any1-comment>// 15
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>mqout</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-number>15</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>eval</SPAN><SPAN class=any1-symbol>( a[ </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ] ) ) </SPAN><SPAN class=any1-comment>// 15 15
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>mqout</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-number>14</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>eval</SPAN><SPAN class=any1-symbol>( a[ </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ] ) ) </SPAN><SPAN class=any1-comment>// 14 15
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>mqout</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-number>42</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>eval</SPAN><SPAN class=any1-symbol>( a[ </SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-space> ], </SPAN><SPAN class=any1-number>42</SPAN><SPAN class=any1-space> ) ) </SPAN><SPAN class=any1-comment>// 42 42
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>mqout</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-number>14</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>eval</SPAN><SPAN class=any1-symbol>( a[ </SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-space> ], </SPAN><SPAN class=any1-number>42</SPAN><SPAN class=any1-space> ) ) </SPAN><SPAN class=any1-comment>// 14 42
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>mqout</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-number>42</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>eval</SPAN><SPAN class=any1-symbol>( a[ </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ] ) ) </SPAN><SPAN class=any1-comment>// 42 42
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>mqout</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-number>14</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>eval</SPAN><SPAN class=any1-symbol>( a[ </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ] ) ) </SPAN><SPAN class=any1-comment>// 14 42
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>GetArray</SPAN><SPAN class=any1-symbol>( @a )
</SPAN><SPAN class=any1-variable>PrintArray</SPAN><SPAN class=any1-symbol>( @a )
</SPAN><SPAN class=any1-function>qout</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"Test for variables passed by reference in a codeblock"</SPAN><SPAN class=any1-space> )
</SPAN><SPAN class=any1-variable>DetachWithRefer</SPAN><SPAN class=any1-symbol>()
</SPAN><SPAN class=any1-function>qout</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-string>"Test for indirect detaching of local variables"</SPAN><SPAN class=any1-space> )
</SPAN><SPAN class=any1-variable>DetachToStatic</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> )
</SPAN><SPAN class=any1-variable>mqout</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( cbStatic, </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ) )
</SPAN><SPAN class=any1-variable>mqout</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-number>3</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( cbStatic, </SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-space> ) )
cb :=cbStatic
</SPAN><SPAN class=any1-variable>DetachToStatic</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-number>100</SPAN><SPAN class=any1-space> )
</SPAN><SPAN class=any1-variable>mqout</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-number>200</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( cbStatic, </SPAN><SPAN class=any1-number>100</SPAN><SPAN class=any1-space> ) )
</SPAN><SPAN class=any1-variable>mqout</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-number>300</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( cbStatic, </SPAN><SPAN class=any1-number>200</SPAN><SPAN class=any1-space> ) )
</SPAN><SPAN class=any1-variable>mqout</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-number>4</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( cb, </SPAN><SPAN class=any1-number>3</SPAN><SPAN class=any1-space> ) )
</SPAN><SPAN class=any1-variable>ReferParam</SPAN><SPAN class=any1-symbol>()
</SPAN><SPAN class=any1-reservedword>Return</SPAN><SPAN class=any1-symbol>( NIL )
</SPAN><SPAN class=any1-reservedword>Static</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>Function</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>TestBlocks</SPAN><SPAN class=any1-symbol>()
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> nFoo := </SPAN><SPAN class=any1-number>23
</SPAN><SPAN class=any1-reservedword>Return</SPAN><SPAN class=any1-symbol>( { {|| nFoo }, {|n| nFoo := n } } )
</SPAN><SPAN class=any1-reservedword>Static</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>Function</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>mqout</SPAN><SPAN class=any1-symbol>( nExpected, nGot )
</SPAN><SPAN class=any1-function>qout</SPAN><SPAN class=any1-symbol>( nExpected, nGot )
</SPAN><SPAN class=any1-reservedword>Return</SPAN><SPAN class=any1-symbol>( NIL )
</SPAN><SPAN class=any1-comment>/////////////////////////////////////////////////////////////////
</SPAN><SPAN class=any1-reservedword>PROCEDURE</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>GetArray</SPAN><SPAN class=any1-symbol>( a )
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> i
a :=</SPAN><SPAN class=any1-function>ARRAY</SPAN><SPAN class=any1-symbol>( </SPAN><SPAN class=any1-number>100</SPAN><SPAN class=any1-space> )
</SPAN><SPAN class=any1-reservedword>FOR</SPAN><SPAN class=any1-space> i:=</SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>TO</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-number>100
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-symbol>( (i % </SPAN><SPAN class=any1-number>6</SPAN><SPAN class=any1-symbol>) == </SPAN><SPAN class=any1-number>0</SPAN><SPAN class=any1-space> )
a[ i-2 ] =NIL
a[ i-4 ] =NIL
</SPAN><SPAN class=any1-reservedword>ENDIF
</SPAN><SPAN class=any1-space> a[ i ] := </SPAN><SPAN class=any1-variable>TestBlocks</SPAN><SPAN class=any1-symbol>()
</SPAN><SPAN class=any1-reservedword>NEXT
RETURN
PROCEDURE</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>PrintArray</SPAN><SPAN class=any1-symbol>( a )
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> i
</SPAN><SPAN class=any1-reservedword>FOR</SPAN><SPAN class=any1-space> i:=</SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>TO</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-number>100
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-symbol>( a[i] != NIL )
</SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( a[ i ][ </SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-space> ], i )
</SPAN><SPAN class=any1-variable>mqout</SPAN><SPAN class=any1-symbol>( i, </SPAN><SPAN class=any1-function>EVAL</SPAN><SPAN class=any1-symbol>( a[ i ][ </SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-space> ] ) )
</SPAN><SPAN class=any1-reservedword>ENDIF
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>NEXT
RETURN
</SPAN><SPAN class=any1-comment>//////////////////////////////////////////////////////////////////
</SPAN><SPAN class=any1-reservedword>Function</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>DetachWithRefer</SPAN><SPAN class=any1-symbol>()
</SPAN><SPAN class=any1-reservedword>Local</SPAN><SPAN class=any1-space> nTest
</SPAN><SPAN class=any1-reservedword>Local</SPAN><SPAN class=any1-space> bBlock1 := </SPAN><SPAN class=any1-variable>MakeBlock</SPAN><SPAN class=any1-symbol>()
</SPAN><SPAN class=any1-reservedword>Local</SPAN><SPAN class=any1-space> bBlock2 := {|| </SPAN><SPAN class=any1-variable>DoThing</SPAN><SPAN class=any1-symbol>( @nTest ), </SPAN><SPAN class=any1-function>qout</SPAN><SPAN class=any1-symbol>( nTest ) }
</SPAN><SPAN class=any1-function>eval</SPAN><SPAN class=any1-symbol>( bBlock1 )
</SPAN><SPAN class=any1-function>eval</SPAN><SPAN class=any1-symbol>( bBlock2 )
</SPAN><SPAN class=any1-reservedword>Return</SPAN><SPAN class=any1-symbol>( NIL )
</SPAN><SPAN class=any1-reservedword>Function</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>MakeBlock</SPAN><SPAN class=any1-symbol>()
</SPAN><SPAN class=any1-reservedword>Local</SPAN><SPAN class=any1-space> nTest
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-symbol>( {|| </SPAN><SPAN class=any1-variable>DoThing</SPAN><SPAN class=any1-symbol>( @nTest ), </SPAN><SPAN class=any1-function>qout</SPAN><SPAN class=any1-symbol>( nTest ) } )
</SPAN><SPAN class=any1-reservedword>Function</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>DoThing</SPAN><SPAN class=any1-symbol>( n )
n := </SPAN><SPAN class=any1-number>42
</SPAN><SPAN class=any1-reservedword>Return</SPAN><SPAN class=any1-symbol>( NIL )
</SPAN><SPAN class=any1-comment>//////////////////////////////////////////////////////////////////////
</SPAN><SPAN class=any1-reservedword>FUNCTION</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>DetachToStatic</SPAN><SPAN class=any1-symbol>( n )
cbStatic ={|x| n+x}
</SPAN><SPAN class=any1-reservedword>RETURN</SPAN><SPAN class=any1-space> NIL
</SPAN><SPAN class=any1-comment>// ------------------------------------------------------------
</SPAN><SPAN class=any1-reservedword>Function</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>ReferParam</SPAN><SPAN class=any1-symbol>()
</SPAN><SPAN class=any1-reservedword>Local</SPAN><SPAN class=any1-space> bResult
? </SPAN><SPAN class=any1-string>"Test for codeblock parameter passed by reference"
</SPAN><SPAN class=any1-variable>PassByValue</SPAN><SPAN class=any1-symbol>( {|lEnd| ;
bResult := </SPAN><SPAN class=any1-variable>GetBlock</SPAN><SPAN class=any1-symbol>( @lEnd ), ;
</SPAN><SPAN class=any1-variable>SetByRef</SPAN><SPAN class=any1-symbol>( @lEnd ) } )
</SPAN><SPAN class=any1-comment>// Clipper &amp; xHarbour it's .T.
//In Harbour it is .F.
</SPAN><SPAN class=any1-symbol>? </SPAN><SPAN class=any1-string>"Printed value in Clipper .T. ="</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>Eval</SPAN><SPAN class=any1-symbol>( bResult )
?
</SPAN><SPAN class=any1-comment>// Notice the Clipper bug: GetBlock is receiving the reference to
// the codeblock parameter than the value of Eval(bResult) shouldn't
// depend on the order of block creation/value changing (GetBlock/SetRef).
</SPAN><SPAN class=any1-variable>PassByRef</SPAN><SPAN class=any1-symbol>( {|lEnd| ;
bResult := </SPAN><SPAN class=any1-variable>GetBlock</SPAN><SPAN class=any1-symbol>( @lEnd ), ;
</SPAN><SPAN class=any1-variable>SetByRef</SPAN><SPAN class=any1-symbol>( @lEnd ) } )
</SPAN><SPAN class=any1-comment>// Clipper &amp; xHarbour it's .T.
//In Harbour it is .F.
</SPAN><SPAN class=any1-symbol>? </SPAN><SPAN class=any1-string>"Printed value in Clipper .T. ="</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>Eval</SPAN><SPAN class=any1-symbol>( bResult )
?
? </SPAN><SPAN class=any1-string>"2nd test for codeblock parameter passed by reference"
</SPAN><SPAN class=any1-variable>PassByValue</SPAN><SPAN class=any1-symbol>( {|lEnd| ;
</SPAN><SPAN class=any1-variable>SetByRef</SPAN><SPAN class=any1-symbol>( @lEnd ), ;
bResult := </SPAN><SPAN class=any1-variable>GetBlock</SPAN><SPAN class=any1-symbol>( @lEnd ) } )
</SPAN><SPAN class=any1-comment>// Clipper &amp; xHarbour it's .T.
//In Harbour it is .F.
</SPAN><SPAN class=any1-symbol>? </SPAN><SPAN class=any1-string>"Printed value in Clipper .F. ="</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>Eval</SPAN><SPAN class=any1-symbol>( bResult )
?
</SPAN><SPAN class=any1-variable>PassByRef</SPAN><SPAN class=any1-symbol>( {|lEnd| ;
</SPAN><SPAN class=any1-variable>SetByRef</SPAN><SPAN class=any1-symbol>( @lEnd ), ;
bResult := </SPAN><SPAN class=any1-variable>GetBlock</SPAN><SPAN class=any1-symbol>( @lEnd ) } )
</SPAN><SPAN class=any1-comment>// Clipper &amp; xHarbour it's .T.
//In Harbour it is .F.
</SPAN><SPAN class=any1-symbol>? </SPAN><SPAN class=any1-string>"Printed value in Clipper .F. ="</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>Eval</SPAN><SPAN class=any1-symbol>( bResult )
?
</SPAN><SPAN class=any1-reservedword>Return</SPAN><SPAN class=any1-space> Nil
</SPAN><SPAN class=any1-reservedword>Static</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>Function</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>PassByValue</SPAN><SPAN class=any1-symbol>( bBlock )
</SPAN><SPAN class=any1-reservedword>Local</SPAN><SPAN class=any1-space> lSomeVar := </SPAN><SPAN class=any1-activedot>.T.
</SPAN><SPAN class=any1-function>Eval</SPAN><SPAN class=any1-symbol>( bBlock, lSomeVar )
? </SPAN><SPAN class=any1-string>"lSomeVar value in Clipper .T. ="</SPAN><SPAN class=any1-symbol>, lSomeVar
</SPAN><SPAN class=any1-reservedword>Return</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-activedot>.T.
</SPAN><SPAN class=any1-reservedword>Static</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>Function</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>PassByRef</SPAN><SPAN class=any1-symbol>( bBlock )
</SPAN><SPAN class=any1-reservedword>Local</SPAN><SPAN class=any1-space> lSomeVar := </SPAN><SPAN class=any1-activedot>.T.
</SPAN><SPAN class=any1-function>Eval</SPAN><SPAN class=any1-symbol>( bBlock, @lSomeVar )
? </SPAN><SPAN class=any1-string>"lSomeVar value in Clipper .F. ="</SPAN><SPAN class=any1-symbol>, lSomeVar
</SPAN><SPAN class=any1-reservedword>Return</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-activedot>.T.
</SPAN><SPAN class=any1-reservedword>Static</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>Function</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>SetByRef</SPAN><SPAN class=any1-symbol>( lVar )
lVar := </SPAN><SPAN class=any1-activedot>.F.
</SPAN><SPAN class=any1-reservedword>Return</SPAN><SPAN class=any1-space> Nil
</SPAN><SPAN class=any1-reservedword>Static</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>Function</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>GetBlock</SPAN><SPAN class=any1-symbol>( lVar )
</SPAN><SPAN class=any1-reservedword>Return</SPAN><SPAN class=any1-space> {|| lVar }
</SPAN><SPAN class=any1-comment>// ------------------------------------------------------------
</SPAN></SPAN>
</CODE></PRE></BODY></HTML>