FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Refrescar Treeview en tiempo de ejecuci贸n?
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Refrescar Treeview en tiempo de ejecuci贸n?
Posted: Tue Mar 25, 2008 04:58 AM

Amigos del foro tengan buen d铆a lo que pasa es que necesito refrescar los niveles de un treeview en tiempo de ejecucci贸n. Saben como lo puedo hacer?

Al mismo tiempo necesito saber como ejecutar una acci贸n al hacer doble clic sobre un item del arbol?

De antemano gracias.

Saludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 682
Joined: Tue Feb 14, 2006 09:48 AM
Refrescar Treeview en tiempo de ejecuci贸n?
Posted: Tue Mar 25, 2008 09:05 AM
1.- La manera de poder cambiar el contenido del tree, es cambiando los tTvItem deseados. Recuerda que el tree es un conteneedor de items.
Lo primero que necesitaras, es saber que item es el que quieres modificar.
Suponiendo que quieres cambiar el item actual, podrias hacerlo de la siguiente manera.
oTree:bChanged := {|o,i| i:=o:GetSelected(),i:SetText('Nuevo caption')}


2.- Esto es m谩s facil, lo que tienes que hacer es definir el codeblock bLDblClick, con lo que quieras que se ejecute al hacer doble click.
oTree:bLDblClick :={||MsgStop('Se ha pulsado doble click')}
Saludos desde Mallorca
Biel Maim贸
http://bielsys.blogspot.com/
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Amigo muchas gracias como siempre por responder. 隆
Posted: Tue Mar 25, 2008 07:48 PM

Amigo como siempre gracias por responder. Pero necesito hacer otra preguntica. Como hago para agregar un nuevo item. En tiempo de ejecucci贸n. Osea cuando agrego un registro a la base de datos. o cuando lo borro como lo quito?

De antemano gracias.

Saludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 682
Joined: Tue Feb 14, 2006 09:48 AM
Refrescar Treeview en tiempo de ejecuci贸n?
Posted: Fri Mar 28, 2008 12:15 PM
Para a帽adir un nuevo item por debajo del item que tienes seleccionanado

oTree:GetSelected():Add(cPrompt, nImage, Cargo)

Para borrar, en la version que tengo yo de FW, no tiene para eliminar items individuales, solo tiene para borrar ramas, pero tienes un aporte de Carles Aubia ( http://fivetechsoft.com/forums/viewtopic.php?t=6235), que a帽adiendo un metodo a la clase tTvItem, permite eliminar items. Puede que las ultimas versiones este metodo ya este incluido, lo desconozco.

La forma de ejeuctarlos
oTree:GetSelected():Delete()
oTree:GetSelected():DeleteBranches()
Saludos desde Mallorca
Biel Maim贸
http://bielsys.blogspot.com/
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Gracias..
Posted: Fri Mar 28, 2008 01:11 PM

Amigo voy a checarlo y cualquier cosa te comento. De nuevo muy agradecido.

Saludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Refrescar Treeview en tiempo de ejecuci贸n?
Posted: Tue Oct 07, 2008 07:27 AM
Biel EA6DD wrote:2.- Esto es m谩s facil, lo que tienes que hacer es definir el codeblock bLDblClick, con lo que quieras que se ejecute al hacer doble click.
oTree:bLDblClick :={||MsgStop('Se ha pulsado doble click')}

驴 Y como se en que Item he pulsado doble click ?
驴 Como se si es padre o hijo ?

Gracias.
Mi abuelo dec铆a: Los aviones vuelan porque Dios quiere, y los helic贸pteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Refrescar Treeview en tiempo de ejecuci贸n?
Posted: Wed Oct 08, 2008 07:10 AM
JmGarcia wrote:驴 Y como se en que Item he pulsado doble click ?
Me contesto yo: oTree:getSelText()

JmGarcia wrote:驴 Como se si es padre o hijo ?
Aqui ya tengo problemas.
Si pido oTree:GetSelected():GetParent():cPrompt y oTree:getSelText() estando en un hijo (2潞 nivel) me da el texto del padre y del hijo.
El problema es cuando estoy en el padre y entonces al buscar a su "padre" (abuelo en este caso) me da un error.

Como el bloque de codigo para doble click es el mismo si pongo esto:
oTree:bLDblClick:={||MsgStop(oTree:GetSelected():GetParent():cPrompt+;
                             oTree:getSelText())}
Cuando estoy en un padre me da Error BASE/1004 Class: 'NIL' has no exported method: CPROMPT

Entonces 驴 Como se en que nivel estoy ?

Por otro lado imaginaros un arbol (tree) que en el primer nivel tiene "nombres" y en el segundo "apellidos" y deseo cambiar el orden.
Como "borro" el tree para cambiar de orden nombre+apellidos o apellidos+orden y refrescarlo. Es decir quiero cambiar todos los datos del tree y repintarlo de nuevo.
Mi abuelo dec铆a: Los aviones vuelan porque Dios quiere, y los helic贸pteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013

Continue the discussion