Página 1 de 1

TreeView EndLabelEdit

Publicado: Lun Ene 17, 2011 3:40 pm
por Andres Hocevar
Hola Foro
Estoy tratando de guardar los cambios a los titulos de un TreeView,
coloco edit en .T. y puedo cambiar el texto, luego para guardarlo uso el
evento OnEndLabelEdit pero :cText mantiene el texto anterior!!!!
Ejemplo:
// Guardo el texto original en la variable ::mAntes
METHOD ModulosBeginLabelEdit( oSender, oItem ) CLASS usuarios
::mAntes := oItem:cText
RETURN Nil
// Ahora quiero traer los cambios
METHOD ModulosEndLabelEdit( oSender, oItem ) CLASS usuarios
IF oItem:cText <> ::mAntes
//Si el cText anterior es diferente al editado
//Guarda el cambio en la tabla pero nunca pasa
//ya que siempre oItem:cText == ::mAntes
ENDIF
RETURN Nil
Como hago para traer el cTexto nuevo?
Gracias
uso XAILER 2.1.5 Beta (01/2010)

TreeView EndLabelEdit

Publicado: Lun Ene 17, 2011 5:29 pm
por jlalin
Andres,
tienes que guardar el cText del item antes de iniciar la edición:
LOCAL oItem := ::oTreeview:GetSelectedItem()
IF oItem != Nil
::mAntes := oItem:cText
oItem:Edit()
ENDIF
Saludos,
José Lalí­n

TreeView EndLabelEdit

Publicado: Lun Ene 17, 2011 6:55 pm
por Andres Hocevar
Hola Jose
Gracias por la respuesta, pero el mAntes lo esta haciendo bien es el
oItem:cText despues del edit que no actualiza
por ejemplo:
La primera linea en treeview dice "Primera", llamo el methodo edit() y
coloco "1. Primera" y luego en el evento OnEndLabelEdit() inspecciono la
variables y el resultado es
mAntes = "Primera"
y
oItem:cText = "Primera"
Ahora bien si llamo el methodo OnSelChanged() las variables cambian a
mAntes = "Primera"
y
oItem:cText = "1. Primera"
El problema es el cText despues de editar que parece que no lo actualiza
sino hasta despues del evento OnEndLabelEdit()
Muchas Gracias
Saludos
El 17/01/2011 11:59, José Lalí­n escribió:
>
> Andres,
>
> tienes que guardar el cText del item antes de iniciar la edición:
>
> LOCAL oItem := ::oTreeview:GetSelectedItem()
>
> IF oItem != Nil
> ::mAntes := oItem:cText
> oItem:Edit()
> ENDIF
>
> Saludos,
> José Lalí­n
>

TreeView EndLabelEdit

Publicado: Lun Ene 17, 2011 9:02 pm
por jlalin
Andrés
no consigo reproducirlo. Enví­a un pequeño ejemplo para probarlo aquí­.
Saludos,
José Lalí­n

TreeView EndLabelEdit

Publicado: Lun Ene 17, 2011 9:32 pm
por Andres Hocevar
Lo mas facil es colocar en el ejemplo del directorio samplesTreeView
agrega lo siguiente
METHOD TVEndLabelEdit( oSender, oItem ) CLASS TForm1
MsgAlert(oItem:cText)
RETURN Nil
Modifica cualquier entrada del treeview y comprueba que cText no cambio,
ahora bien si ese es el comportamiento esperado, como hago para
como hago para obtener el string modificado?
Gracias

TreeView EndLabelEdit

Publicado: Lun Ene 17, 2011 10:23 pm
por jlalin
Andrés,
creo que hay un bug en la declaración del evento OnEndLabelEdit. Cambia la
declaración del método por esta:
METHOD TVEndLabelEdit( oSender, oItem, cText ) CLASS TForm1
MsgAlert( cText )
RETURN Nil
También está mal la documentación, ya que deberí­a indicar que devolviendo
.F. no se acepta el texto introducido. Por ejemplo, para evitar que se deje
en blanco:
METHOD TVEndLabelEdit( oSender, oItem, cText ) CLASS TForm1
MsgAlert( cText )
RETURN !Empty( cText )
Saludos,
José Lalí­n

TreeView EndLabelEdit

Publicado: Mar Ene 18, 2011 1:00 am
por Andres Hocevar
Ahora si funciona muchas gracias
El 17/01/2011 16:53, José Lalí­n escribió:
> Andrés,
>
> creo que hay un bug en la declaración del evento OnEndLabelEdit. Cambia
> la declaración del método por esta:
>
> METHOD TVEndLabelEdit( oSender, oItem, cText ) CLASS TForm1
> MsgAlert( cText )
> RETURN Nil
>
> También está mal la documentación, ya que deberí­a indicar que
> devolviendo .F. no se acepta el texto introducido. Por ejemplo, para
> evitar que se deje en blanco:
>
> METHOD TVEndLabelEdit( oSender, oItem, cText ) CLASS TForm1
> MsgAlert( cText )
> RETURN !Empty( cText )
>
> Saludos,
> José Lalí­n
>