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