Files
harbour-core/harbour/tests/clasinit.prg
1999-10-04 18:46:41 +00:00

63 lines
1.4 KiB
Plaintext

//
// $Id$
//
// Using Harbour Class TClass
function Main()
local oForm := TForm():New()
local oSecond
QOut( "What's the default oForm and calculate area" )
Debug( oForm )
QOut( oForm:CalcArea() )
QOut( "Set nTop to 5 and recalculate" )
oForm:nTop := 5
Debug( oForm )
QOut( oForm:CalcArea() )
QOut( "Create a new instance and calculate area" )
oSecond := TForm():New()
Debug( oSecond )
QOut( oSecond:CalcArea() )
return nil
function TForm()
static oClass
if oClass == nil
oClass = TClass():New( "TFORM" ) // starts a new class definition
oClass:AddData( "cName" ) // define this class objects datas
oClass:AddData( "nTop" , 10 )
oClass:AddData( "nLeft" , 10 )
oClass:AddData( "nBottom", 20 )
oClass:AddData( "nRight" , 40 )
oClass:AddMethod( "New", @New() ) // define this class objects methods
oClass:AddMethod( "Show", @Show() )
oClass:AddInline( "CalcArea", ;
{|self| ( ::nRight - ::nLeft ) * ( ::nBottom - ::nTop ) } )
oClass:Create() // builds this class
endif
return oClass:Instance() // builds an object of this class
static function New()
local Self := QSelf()
return Self
static function Show()
local Self := QSelf()
QOut( "lets show a form from here :-)" )
return nil