binder and events newbie simple question..

You can also use evt.GetEventObject() in your handler to get the caselle
that caused the event to happen.

def caselles(evt):
     id_ = evt.GetId() - 5000 # get value 0-99
     n = id_ / 10
     m = id_ % 10
     caselle = evt.GetEventObject()

-Paul

···

-----Original Message-----
From: Phil Mayes [mailto:pmayes@olivebr.com]
Sent: Tuesday, July 11, 2006 4:35 PM
To: wxPython-users@lists.wxwidgets.org
Subject: Re: [wxPython-users] binder and events newbie simple question..

At 11:35 AM 7/11/2006, you wrote:

Hi,
i'm a newbie, in programation in general. I'm doing my first program
and i have a simple question:
i have a lot of intctrl's in my frame. i generate them in a loop but
the problem is the binder:
        for n in range(0,9):
                for m in range(0,9):
                        casella = 'casella'+str(n)+'x'+str(m)
                        casella = wx.lib.intctrl.IntCtrl(parent=self,
value=None, min=1,
max=9, id=wx.NewId(), size=(20,20), limited=True, allow_none=True)

here comes the problem. with events and binder:
                        self.Bind(event=wx.lib.intctrl.EVT_INT,
source=casella,
id=casella.GetId(), handler=caselles(casella))

It must not the correct way... What i wanna is when casella changes its

value, pass a function (caselles) that the argument is casella (so, not

all intctrls' events will do the same, not? correct me if i'm wrong
please..).

Can you help me? Thanks a lot! :smiley:

Make the control ID explicit and analyse it in the handler:
     id_=5000
     for n in range(0,9):
         for m in range(0,9):
             casella = 'casella%dx%d' % (n,m) # more efficient
             casella = wx.lib.intctrl.IntCtrl(parent=self, value=None,
min=1, max=9, id=id_, size=(20,20), limited=True, allow_none=True)
             id_ += 1 # give controls IDs 5000-5099
             casella.Bind(wx.lib.intctrl.EVT_INT, caselles)

def caselles(evt):
     id_ = evt.GetId() - 5000 # get value 0-99
     n = id_ / 10
     m = id_ % 10
     ...

Hope that helps,
Phil Mayes

---------------------------------------------------------------------
To unsubscribe, e-mail: wxPython-users-unsubscribe@lists.wxwidgets.org
For additional commands, e-mail: wxPython-users-help@lists.wxwidgets.org