2010/12/19 Benoît Minisini <gam...@users.sourceforge.net>:
>
> Tell me the important things I forgot, because I am sure I have forgotten
> things.
>
> Not the small bugs, but the features that may change the language syntax or
> the interface of some components.

Hi Benoît. I think that a "mecanism" for automatic and selective
sharing of public methods, properties and events from objects that are
members of another, to it's container object, will be useful.

Example. The ValueBox is compound for a TextBox, but the interface of
TextBox isn't shared with ValueBox, nothing at all. If I want to share
the complete interface of TextBox with ValueBox I should use
inheritance, but there's no an automatic way to share partially and
automatically the interface of TextBox to ValueBox because TextBox is
a member of ValueBox (composition). So, this should be done manually,
repeating the mayor part of interface of TextBox in ValueBox (there's
no big deal in this case, but in others could be).

Note: when a control is based on Control or UserControl through
inheritance, some properties inherited (maybe methods too) have no
sense in the new control, but inheritance have no way to anulate some
members in the subclass, is all or nothing. In similar way composition
or association forces to make public the member that "is part" or "is
used", allowing access to it's complete interface (and, again, this
many times haven't sense) or make it private, preventing access
absolutely. (Containers are a special case that breaks the
encapsulation through the collection "Children"). An new mecanism for
selectively share part of interface of the an object for

May be would be useful can do something like that:

' Inside ValueBox class
shareInterface(TextBox, ValueBox, noneExcept, Name, X, Y, W, H, ...,
Click, KeyPress, ... , Refresh, Resize, ...)

shareInterface(TextBox, ValueBox, allExcept, Text, Password, ... )

'Syntax
shareInterface(FromClass, ToClass, { allExcept | noneExcept } ,
[properties] [events] [methods] )


A name conceptually more accurate could be "Delegate"

'Syntax
Delegate(ToClass, FromClass, { allExcept | noneExcept } , [properties]
[events] [methods] )



Good or crazy idea?


-- 
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargentina.blogspot.com

------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
Gambas-user mailing list
Gambas-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user

Reply via email to