I'm wondering about how to add or remove panels from a form at runtime.
I see two approaches:

1. Creating a new panel and replacing an existing one (destroying the old one).
Meaning the new panel would take whatever sizer slot the original
panel was occupying.

I haven't thought about how this could be achieved. Any clues?

2. Creating both panels up-front with one of them hidden (with the
Visible property set to False) .
Then it would be a matter of toggling the visibility of panels to hide
or show them.

I wonder if you have a better approach, or if there is something
missing in the following approach?

# Two panel classes are previously defined

class MainForm(dui.dFormMain):
    def afterInitAll(self):
        vs = self.Sizer = dui.dSizer('v')
        btn = dui.dButton(self, Caption='Click me')
        vs.append(Panel1(self))
        vs.append(Panel2(self))
        vs.append(btn)
        self.layout()

        btn.bindEvent(dabo.dEvents.Hit, self.panelToggle)

    def panelToggle(self, evt):
        panel1 = self.getObjectByRegID("panel1")
        panel2 = self.getObjectByRegID("panel2")

        panel1.Visible = not panel1.Visible
        panel2.Visible = not panel2.Visible

        self.layout()

Txs for comments,
Miguel


_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message: 
http://leafe.com/archives/byMID/[email protected]

Reply via email to