Subject Re: INHERITANCE
From Andy Taylor <andy.taylor@which.net>
Date Wed, 19 Jul 2017 05:19:36 -0400
Newsgroups dbase.getting-started

Mustansir,

The problem is where you placed the following code..

function MYTABBOX1_onSelChange()
//      super::onSelChange()
         mytabbox::mytabbox_onselchange()
         this.parent.text1.text=this.datasource
  return

It sits inside the forms class/endclass statements which as far as dBASE is concerned makes it
a method of the form. It is not a method of MyTabBox1. Putting super::onSelChange() in a form
method means that super:: looks for the method in the forms ancestor object which would only
exist if you have set one up in a custom form class.  

Andy

> Below is my program example of tab. It works as you indicated. There is one statement with comment //. If I remove the comment slashes and use with super class it does not work. If I were to use super class would the statement be.
>
>
> ** END HEADER -- do not remove this line
> //
> // Generated on 07/19/2017
> //
> parameter bModal
> local f
> f = new LABORATForm()
> if (bModal)
>    f.mdi = false // ensure not MDI
>    f.readModal()
> else
>    f.open()
> endif
>
> class LABORATForm of FORM
>    set procedure to :DT_custom:MyControls.cc additive
>    with (this)
>       metric = 3        // Inches
>       height = 6.0
>       left = 0.0
>       top = 1.0
>       width = 7.5833
>    endwith
>
>    this.MYTABBOX1 = new MYTABBOX(this)
>    with (this.MYTABBOX1)
>       onSelChange = class::MYTABBOX1_ONSELCHANGE
>       height = 0.2292
>       left = 0.0
>       top = 5.75
>       width = 7.5625
>    endwith
>
>    this.TEXT1 = new TEXT(this)
>    with (this.TEXT1)
>       height = 0.5729
>       left = 1.5313
>       top = 1.1458
>       width = 2.625
>       text = "Text1"
>    endwith
>
>
>   function MYTABBOX1_onSelChange()
>        
> //      super::onSelChange()
>          mytabbox::mytabbox_onselchange()
>          this.parent.text1.text=this.datasource
>                 
>   return
>                 
>                 
> endclass
>
> class MYTABBOX(parentObj) of TABBOX(parentObj) custom
>    with (this)
>       onSelChange = class::MYTABBOX_ONSELCHANGE
>       onOpen = class::MYTABBOX_ONOPEN
>       id = 110
>       height = 22.0
>       left = 0.0
>       top = 350.0
>       width = 465.0
>       metric = 6        
>       colorHighLight = "WindowText/0x80ffff"
>       dataSource = 'ARRAY {"Individual Record","Find Record"}'
>    endwith
>
>    function MYTABBOX_onSelChange()
>       form.pageNo := this.curSel
>    return
>    
>    function MYTABBOX_onOpen()
>       this.curSel := 1
>       form.pageNo := 1
>    return
> endclass
>
> Regards
> Mustansir