Further to the email below - what I assume is happening is that I only need to do an fp.release - and that tries to delete anything contained on the floating panel - as I have already released the dListBox it can't access it - so the fix is - just release the fp - it will take care of the dListBox. Will post final code seperately!
Rodgy ----- Original Message ----- From: "Roger Lovelock" <[email protected]> To: "Dabo Users list" <[email protected]> Sent: Sunday, February 01, 2009 9:10 AM Subject: Re: [dabo-users] Fw: List Controls > > Still going down the Lostfocus road - I like that as you either select a > record by clicking on it, or abandon selection by clicking elsewhere. > Realised my Lostfocus was on the wrong control! (ie the button, not the > dListBox - changed my code as follows :- > > self.AccountLookupbtn = dabo.ui.dButton(self.basePanel, Left=184, Top=78, > Width=40, > Caption="Lookup",OnHit=self.DDLPanel) > > def DDLPanel(self, evt): > self.fp = self.FloatingPanel > # Can use floating panel owner property to set position here) > left, top = self.Position > self.fp.Position = (left+184,top+78) > codes, keys = self.PrimaryBizobj.getAccountCodes() > self.AccountCodeDDL = dabo.ui.dListBox(self.fp, Width=60, Height=200, > Left=0, Top=0, ValueMode="Key", Choices = codes, Keys = keys, > OnHit=self.DDLClick, > OnLostFocus=self.DeleteDDL) > wd, ht = self.AccountCodeDDL.Size > self.fp.Size = (wd, ht) > self.fp.Visible = True > self.AccountCodeDDL.Visible = True > > def DDLClick(self, evt): > self.PrimaryBizobj.moveToPK(self.AccountCodeDDL.Value) > self.update() > self.DDLKill() > > def DeleteDDL(self, evt): > self.DDLKill() > > def DDLKill(self): > self.AccountCodeDDL.release() > self.fp.release() > > Works correctly, but gives a trace as follows : > > C:/Python25/pythonw.exe -u "C:/LBProject/AccountsForm.py" > Traceback (most recent call last): > File "c:\svndabo\dabo\ui\uiwx\dPemMixin.py", line 565, in __onWxLostFocus > self.raiseEvent(dEvents.LostFocus, evt) > File "c:\svndabo\dabo\ui\uiwx\dPemMixin.py", line 944, in raiseEvent > super(dPemMixin, self).raiseEvent(eventClass, nativeEvent, *args, > **kwargs) > File "c:\svndabo\dabo\lib\eventMixin.py", line 93, in raiseEvent > bindingFunction(event) > File "c:\svndabo\dabo\ui\dDataControlMixinBase.py", line 53, in > __onLostFocus > if self._lostFocus() is False: > File "C:\Python25\Lib\site-packages\wx-2.8-msw-unicode\wx\_core.py", line > 13776, in __getattr__ > raise PyDeadObjectError(self.attrStr % self._name) > wx._core.PyDeadObjectError: The C++ part of the dListBox object has been > deleted, attribute access no longer allowed. > > Any suggestions? > > Thanks Rodgy > > [excessive quoting removed by server] _______________________________________________ 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/cf65e3790f4b4d51b5fd1ba3d02bd...@roger
