Re: [Gambas-user] Question about collections and inheritance
Brought to you by:
gambas
From: Lord Q. <lor...@gm...> - 2010-08-30 14:59:00
|
Excellent! Thans :-) -------------------------------------------------- From: "Benoît Minisini" <ga...@us...> Sent: Saturday, August 28, 2010 4:36 PM To: "mailing list for gambas users" <gam...@li...> Subject: Re: [Gambas-user] Question about collections and inheritance >> Hi all. >> >> I'm trying to code a very basic Xml Excel Generator, and I'm workin >> with >> a collection. This is my code: >> >> ' Gambas class file >> >> Inherits Collection >> >> Public Function Add($ID As String) As Style >> >> Dim $style As New Style($ID) >> >> Super.Add($style, $ID) >> >> Return $style >> >> End >> >> Public Function _GetXml() As String >> >> Dim $style As Style >> Dim $text As String = "\t<s:Styles>\n" >> >> For Each $style In Me >> $text &= $style._GetXml() & "\n" >> Next >> >> $text &= "\t</s:Styles>" >> Return $text >> >> End >> >> Style is another class I have. My class inherits the Collection class >> and I override the Add function. All of this works fine, my question is >> about another Collection functionality: >> >> With a normal Collection we can do something like this: >> >> Dim $col As Collection >> $col.Add("My value", "key") >> Print *$col["key"]* >> >> I can access to my item whit his "key". How can I override this >> functionality in my class, because Gambas return me a Variant data type >> element and I want to return my own data type, my Style class. >> >> Thanks. >> >> P.S. Sorry my english, I trying to learn it but I'm still newbie >> > > You have to override the _get() method. Something like that I presume: > > Public sub _get(Id As String) As Style > > Return Super[Id] > > End > > Regards, > > -- > Benoît Minisini |