Page 2 of 2
Re: SUB-CLASS TFolderEx()
Posted: Sat Feb 04, 2023 9:17 am
by Antonio Linares
Dear Jimmy,
If you add a method with the same name, you are in fact overriding it.
Please try it
Re: SUB-CLASS TFolderEx()
Posted: Sun Feb 05, 2023 5:20 am
by Jimmy
hi Antonio,
"where" can i get more Information about
__objAddData( oObject, cSymbol ) and __objAddMethod( oObject, cSymbol, nFuncPtr ), __objModMethod( oObject, cSymbol, nFuncPtr )
have not found a Sample
---
have found in OOHG
and these Function
__OBJADDDATA
__OBJADDINLINE
__OBJADDMETHOD
__OBJCLONE
__OBJDELDATA
__OBJDELINLINE
__OBJDELMETHOD
__OBJDERIVEDFROM
__OBJGETCLSNAME
__OBJGETMETHODLIST
__OBJGETMSGLIST
__OBJGETPROPERTIES
__OBJGETVALUELIST
__OBJHASDATA
__OBJHASMETHOD
__OBJHASMSG
__OBJHASMSGASSIGNED
__OBJMODINLINE
__OBJMODMETHOD
__OBJSENDMSG
__OBJSETCLASS
__OBJSETVALUELIST
are these OOHG or harbour Function
Re: SUB-CLASS TFolderEx()
Posted: Mon Feb 06, 2023 7:53 am
by Antonio Linares
Re: SUB-CLASS TFolderEx()
Posted: Wed Feb 08, 2023 4:14 am
by Jimmy
hi,
how to run Console App with QOut() under Fivewin
i try to use a Demo Sample which use Qout() but i got not "output" on Screen
i do have sane under HGM where i can add
but this does not work with Fivewin while "unknown"
so how run this CODE so i can "see" Output
Code: Select all | Expand
//
// $Id: dynobj.prg 14676 2010-06-03 16:23:36Z vszakats $
//
// DynObj
//
// Implementation of dynamic objects in Harbour
//
// Date : 1999/05/12
//
// Written by Eddie Runia <eddie@runia.com>
// www - http://harbour-project.org
//
// Placed in the public domain
//
function Main()
local oForm := TForm():New()
local nSeq
QOut( "What methods are in the class :" )
Debug( __objGetMethodList( oForm ) )
/* Let's add an inline at run-time. Should already be possible */
QOut( "Let's add inline 'CalcArea' at run-time to an already instanced class" )
__objAddInline( oForm, "CalcArea", ;
{|self| ( ::nRight - ::nLeft ) * ( ::nBottom - ::nTop ) } )
QOut( "What methods are in the class :" )
Debug( __objGetMethodList( oForm ) )
QOut( "What is the Form area ?" )
QOut( oForm:CalcArea() )
QOut( "Let's add method 'Smile' at run-time to an already instanced class" )
__objAddMethod( oForm, "Smile", @Smile() )
QOut( "What methods are in the class :" )
Debug( __objGetMethodList( oForm ) )
QOut( "Smile please " )
oForm:Smile()
Pause()
QOut( "Data items before" )
Debug( oForm )
QOut( "Let's add an additional data item" )
__objAddData( oForm, "cHelp" )
oForm:cHelp := "This is a real tricky test"
QOut( "Data items after" )
Debug( oForm )
Pause()
QOut( "Let's attach a bigger smile" )
__objModMethod( oForm, "Smile", @BigSmile() )
QOut( "Let's smile" )
oForm:Smile()
QOut( "And CalcArea() will now give a result in square inches" )
__objModInline( oForm, "CalcArea", ;
{|self| ( ::nRight - ::nLeft ) * ( ::nBottom - ::nTop ) / (2.54*2.54) } )
QOut( "What is the Form area ?" )
QOut( oForm:CalcArea() )
QOut( "What methods are in the class :" )
Debug( __objGetMethodList( oForm ) )
QOut( "Delete CalcArea" )
__objDelInline( oForm, "CalcArea" )
QOut( "What methods are in the class :" )
Debug( __objGetMethodList( oForm ) )
QOut( "Delete Smile" )
__objDelMethod( oForm, "Smile" )
QOut( "What methods are in the class :" )
Debug( __objGetMethodList( oForm ) )
Pause()
QOut( "Data items before" )
Debug( oForm )
QOut( "Let's delete cHelp" )
__objDelData( oForm, "cHelp" )
QOut( "Data items after" )
Debug( oForm )
/* oForm:cHelp := "Please crash" */
return nil
function TForm()
static oClass
if oClass == nil
oClass := HBClass():New( "TFORM" ) // starts a new class definition
oClass:AddData( "cText" ) // define this class objects datas
oClass:AddData( "nTop" )
oClass:AddData( "nLeft" )
oClass:AddData( "nBottom" )
oClass:AddData( "nRight" )
oClass:AddMethod( "New", @New() ) // define this class objects methods
oClass:AddInline( "Show", {|self| ::cText } )
oClass:Create() // builds this class
endif
return oClass:Instance() // builds an object of this class
static function New()
local Self := QSelf()
::nTop := 10
::nLeft := 10
::nBottom := 20
::nRight := 40
return Self
static function Smile()
local self := QSelf()
if ::CalcArea() == 300
QOut( ":-)" )
else
QOut( ":-(" )
endif
return self
static function BigSmile()
local self := QSelf()
QOut( ":-)))" )
return self
function Pause()
__Accept( "Pause :" )
return nil
Re: SUB-CLASS TFolderEx()
Posted: Wed Feb 08, 2023 8:44 am
by Antonio Linares
Dear Jimmy,
You don't need FWH there at all. Simply use hbmk2 to build it or FWH\samples\build.bat
Re: SUB-CLASS TFolderEx()
Posted: Wed Feb 08, 2023 10:22 pm
by Jimmy
hi Antonio,
Antonio Linares wrote:You don't need FWH there at all. Simply use hbmk2 to build it or FWH\samples\build.bat
ok, got it
... : undefined reference to `HB_FUN_DEBUG'
hbmk2: Hint: Add input file 'hbmisc.hbc' for missing Harbour function(s):
Debug()