[Gambas-user] INHERITS ?????
    Benoit Minisini 
    gambas at ...1...
       
    Sun Apr 11 23:13:48 CEST 2004
    
    
  
On Sunday 11 April 2004 22:52, Charlie Reinl wrote:
> Salut,
>
> saw in the mailinglist INHERITS .
>
> Want make 'INHERITS  TableView'
>
> If I do so in a new Class called XTableView
> --- XTableView.class ---------------- beginning
> ' Gambas class file
> INHERITS  TableView
>
> PUBLIC Name AS String
> PUBLIC SUB _new(sName AS String)
>  Name = sName
> END
> --- XTableView.class ---------------- ending
>
> And call in FMain.class
>
> PRIVATE TableView2 AS  Object
> ...
> PUBLIC SUB Form_Open()
> 	TableView2 = NEW XTableView(FMain) AS "TableView2"
> ...
> ...
> END
>
> I get a MsgBox 'Not enough arguments'
>
>
> What shall I do ?
>
> Amicalement
> Charlie
>
Ha ha! I must continue to explain how works the undocumented inheritance :-)
Contrary to all the object language I know, each class in the inheritance 
hierarchy consumes the parameters passed to the constructor.
In your example, you have the following inheritance tree:
XTableView ---> TableView ---> Control
Control._new does not exist
TableView._new takes one parameter: the parent control.
XTableView._new takes one parameter: a name.
So NEW XTableView must take TWO parameters. The first will be sent to 
XTableView._new(), the second to TableView._new(). But the TableView._new() 
will be called first. This way, you are sure that TableView control exists 
when you are in XTableView._new().
So you must do TableView2 = NEW XTableView("MyName", FMain) AS "TableView2"
I think I don't make a mistake in the parameters order. Tell me if I'm 
right :-)
Regards,
-- 
Benoit Minisini
mailto:gambas at ...1...
    
    
More information about the User
mailing list