Me desaparece el cursor...
Ariel Nardelli
pan_python en yahoo.com.ar
Jue Feb 17 18:58:14 CET 2005
Hola!
Sigo armando un programa done uso texbox para introducir campos fecha y
se me esta presentando un inconveniente.
Quiero validar que al fecha ingresada sea correcta y se me ocurrio que
para hacer la validacion tengo que hacerla cuando el texbox pierde el
foco, cuando se pierde el foco es cuando tengo que verificar que la
fecha sea correcta y si lo es ahi continuar el programa.
Pero, resulta que al poner el evento de Kill foco en el texbox pierdo el
cursor no me queda la barrita titilante pero puedo editar lo escrito
dentro del texbox, corregirlo y hacer lo que quiera... pero todo el
tiempo no tengo la barrita del cursor que me marca donde esta...
Uso wxwin 2.4
Aca les pongo parte de mi codigo (soy novato no me maten) :))
Esto llama a los eventos..
# TC_falta
EVT_TEXT_ENTER(self, 8,self.ev_enter_tc_falta)
EVT_TEXT(self, 8,self.ev_text_tc_falta)
EVT_CHAR(self.tc_falta, self.ev_char_tc_falta)
EVT_SET_FOCUS(self.tc_falta,self.ev_sf_tc_falta) # Se activa
cuando toma foco...
EVT_KILL_FOCUS(self.tc_falta,self.ev_kf_tc_falta) # Se activa
cuando DEJA el foco...
y las funciones que hacen cada una es..
# Eventos TC_FALTA
def ev_sf_tc_falta(self,event): # Set Foco..
print "Foco Alta"
Este solo imprime para saber que funciona en realidad no lo pienso usar
pero lo puse por las dudas...
def ev_kf_tc_falta(self,event): # Kill Foco..
tmp_falta = self.tc_falta.GetValue()
tmp_sepa = tmp_falta.split('-')
print "Alta",tmp_sepa
Aca es donde yo validaria que la fecha sea corecta incluso empece a
hacer el split pero quede ahi porque al desaparecerme el cursor quede
dando vueltas con este tema...
# tc_falta, evento text.
def ev_enter_tc_falta(self,event): # Este evento no hace nada solo
saca el enter.
key = event.GetString()
# tc_falta, evento text.
def ev_text_tc_falta(self,event):
key = event.GetString()
largo = len(key) # tiene el largo para validar despues los datos...
# print largo
nada, rutina a medio terminar :)
def ev_char_tc_falta(self,event):
# 353 es F12 y 352 es F11 (f12 avanza, f11 retrocede)
deja = '-0123456789'
key = event.GetKeyCode()
if key == 9 or key == 353: # Tecla TAB o F12 Pasa foco.
self.bgrabar.SetFocus() # entonces va a Grabar..
if self.tc_fdef.IsEnabled(): self.tc_fdef.SetFocus() # Foco
a Defuncion.
if self.tc_fbaja.IsEnabled(): self.tc_fbaja.SetFocus() #
Foco a Baja.
event.Skip()
if key == 352: # F11 retrocede
self.tc_orden.SetFocus()
event.Skip()
if key == 13: # Enter
self.bgrabar.SetFocus() # entonces va a Grabar..
if self.tc_fdef.IsEnabled(): self.tc_fdef.SetFocus() # Foco
a Defuncion.
if self.tc_fbaja.IsEnabled(): self.tc_fbaja.SetFocus() #
Foco a Baja.
event.Skip()
if key < WXK_SPACE or key == WXK_DELETE or key > 255:
event.Skip()
return
if chr(key) in deja:
event.Skip()
Bueno, como puedo hacer para que usando el evento de set y kill foco me
siga apareciendo el cursorsito?
Desde ya Gracias, Ariel
--
Saludos
Panflin
NO al limite de adsl de TELECOM
Firma YA el petitorio NACIONAL para que TELECOM no nos estafe con el limite del ADSL, la direccion es:
http://peticionbandaancha.com/
www.reconquista.com.ar
Más información sobre la lista de distribución Python-es