Subclass method -distorted now put again
June
somewhere at so.com
Wed May 7 17:36:30 PDT 2008
Jarrett Billingsley Wrote:
> "June" <somewhere at so.com> wrote in message
> news:fvtbau$p5q$1 at digitalmars.com...
>
> > Dont see how this applies .
> > I want to add a function to 'dwt.widgets.Text' that takes two char arrays
> > and alters the text in an instance of dwt.widgets.Text'
> >
> > dwt.widgets.Text' only has a function that takes one char array ?
> > setText(char[] text)
>
> It applies because it's exactly what you want to do ;)
>
> You have several Text objects, yes? And each one has a name? You can't
> just "add a method" to Text and have it "find" a text box of a given name,
> you have to store those text boxes and perform the name lookup yourself.
> Remember that a class method only operates on a single object; if you
> subclassed Text, you wouldn't be able to access other instances of Text
> besides 'this' unless you stored them somewhere.
>
> So instead of doing something like
>
> class MyWindow
> {
> Text foo;
> Text bar;
>
> this()
> {
> foo = new Text("hi!");
> bar = new Text("bye!");
> }
> }
>
> You can instead store them in an associative array which maps from names to
> text boxes:
>
> class MyWindow
> {
> Text[char[]] textBoxes;
>
> this()
> {
> textBoxes["foo"] = new Text("hi!");
> textBoxes["bar"] = new Text("bye!");
> }
> }
>
> Then, you can add a method to MyWindow that will take a name and a string,
> and will set the text box with the given name to the given string:
>
> // defined as a method of MyWindow
> void setText(char[] name, char[] s)
> {
> textBoxes[name].setText(s);
> }
>
> Keep in mind that D is a statically-compiled language, unlike languages like
> Python, and so dynamic (runtime) lookup of variables and members is, in
> general, not possible. Which is why you have to store the mapping from
> names to controls yourself.
>
>
Completely lost now .
So much extraneous stuff
>>textBoxes["foo"] = new Text("hi!"); using 'dwt.widgets.Text' ,,this expects a composite parent and an integer style so this does not work
I understand the need to store the names point you are making but surely I can overload the 'dwt.widgets.Text's ' setText(text) function some way?
More information about the Digitalmars-d-learn
mailing list