Class method

Post Reply
pawelu
Posts: 126
Joined: Thu Oct 06, 2005 10:18 pm
Location: Poland
Contact:

Class method

Post by pawelu »

Antonio,

Is this possible to create class like this where ::ShowTest() method is call for get object ?

Thanks for help
Pawel

Code: Select all

Function ClassTest ()

   Local oTest := Nil

   oTest := Test () : New ()

Return .T.

Class Test

   Data oWnd
   Data oGet1
   Data cGet1 Init Space (10)

   Method New ()
   Method ReadTest ()
   Method ShowTest ()

EndClass

Method New () Class Test

   Define Window ::oWnd Title 'Class Test'
   @ 10, 10 Button 'Ok' Size 60, 20 Pixel Action ::ReadTest ()
   Activate Window ::oWnd

Return Self

Method ReadTest () Class Test

   @ 40, 10 Get ::oGet1 Var ::cGet1 Size 100, 20 Pixel On Change ::ShowTest () Of ::oWnd // this generate error message not found TGET:SHOWTEST
   @ 70, 10 Button 'Ok' Size 60, 20 Pixel Action MsgInfo (Str (::oGet1 : nPos))

Return .T.

Method ShowTest () Class Test

   MsgInfo (Str (::oGet1 : nPos))

Return .T.
User avatar
Carles
Posts: 937
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona
Contact:

Post by Carles »

Hello,

Can you try

Code: Select all

...
::oGet1:bChange := {|| ::ShowTest() }
...
Regards.
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Pawel,

Besides Carles solution, you may do:

Code: Select all

Method ReadTest () Class Test 
   
   local oThis := Self

   @ 40, 10 Get ::oGet1 Var ::cGet1 Size 100, 20 Pixel On Change oThis:ShowTest () Of ::oWnd
   @ 70, 10 Button 'Ok' Size 60, 20 Pixel Action MsgInfo (Str (::oGet1 : nPos)) 

Return .T. 
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply