Forum: wxRuby Sizers + StaticText

5f14bb0f01ab4d14b34500a0802d53a9?d=identicon&s=25 Daniel S. (daniel_s89)
on 2012-09-22 17:39
I've got some Problems with sizers and StaticTexts.

My Code:

@sizer = VBoxSizer.new
@sizer.add_item(StaticText.new(self, -1, "Test"), flag: ALIGN_CENTRE)


Until here, everything is OK, Text appears on screen at the right place.

Now i want to remove this Text and replace it with two others. For this
do the following:

@sizer.remove(0)
@sizer.layout()
@sizer.add_item(StaticText.new(self, -1, "Min"), flag: ALIGN_CENTRE)
@sizer.add_item(StaticText.new(self, -1, "Max"), flag: ALIGN_CENTRE)


Now "Min" and "Max" appear at the right place (Min at the place of
"Test" and "Max" under it), but the old Text "Test" is still in place
and "behind" "Min" visible.

What am i doing wrong? Any ideas?
06f6780c99d4a8dd71f2b474082ea9ce?d=identicon&s=25 Alex Fenton (Guest)
on 2012-09-24 00:09
(Received via mailing list)
hi

On 22/09/2012 16:39, Daniel S. wrote:
>
> @sizer.remove(0)
> @sizer.layout()
> @sizer.add_item(StaticText.new(self, -1, "Min"), flag: ALIGN_CENTRE)
> @sizer.add_item(StaticText.new(self, -1, "Max"), flag: ALIGN_CENTRE)
>
>

I haven't tried, but - you might try calling destroy() on the StaticText
you're deleting. In wxRuby you don't usually need to call this but here
it might be appropriate:

http://wxruby.rubyforge.org/doc/window.html#Window_destroy

And usually, layout() is called after you have finished doing all
changes to the contents of a Sizer.

alex
This topic is locked and can not be replied to.