Simplificar codigo.
Chema Cortes
py en ls-l.org
Jue Sep 1 10:46:17 CEST 2005
Ariel Nardelli escribió:
> Te cuento que lo hice andar y ya estoy readaptando mi codigo :)
> Hice un par de modificaciones que las pongo aca asi le puede servir a
> cualquiera :)
>
> En los eventos va..
>
> # p_apno -3- (Razon Social)
> EVT_TEXT_ENTER(self, 3,self.evt_get)
> EVT_TEXT(self, 3,self.evt_get)
> EVT_CHAR(self.tb_apno, lambda event:
> self.p_apno_ev_char(event,'tb_dire','tb_copo') )
> EVT_SET_FOCUS(self.tb_apno,self.evt_skip) # toma foco...
> EVT_KILL_FOCUS(self.tb_apno,self.p_apno_ev_df) # deja el foco...
>
> Donde tb_dire es el proximo tb a procesar y tb_copo es el tb anterior y
> despues en mi rutina tengo...
>
> def p_apno_ev_char(self,event,sig,ant):
> # 353 es F12 y 352 es F11 (f12 avanza, f11 retrocede)
> key = event.GetKeyCode()
> if key == 9 or key == 353 or key == 13: # Tecla TAB o F12 Pasa foco.
> va = 'self.'+sig+'.SetFocus()'
> eval(va)
> event.Skip()
> if key == 352: # F11 retrocede
> va = 'self.'+ant+'.SetFocus()'
> eval(va)
> event.Skip()
> if key < WXK_SPACE or key == WXK_DELETE or key > 255:
> event.Skip()
> return
> event.Skip()
>
> Asi se pone "en foco" el proximo o anterior segun las teclas pulsadas...
Se podría evitar el eval()
if key in (353,9,13): # Tecla TAB o F12 Pasa foco.
tb=geattr(self,sig)
tb.SetFocus()
event.Skip()
elif key == 352: # F11 retrocede
tb=geattr(self,ant)
tb.SetFocus()
event.Skip()
Más información sobre la lista de distribución Python-es