Obteniendo el "check" de un item de un treeview

Obteniendo el "check" de un item de un treeview

Postby AngelSalom » Fri May 11, 2018 9:27 am

Hola amigos, en mi versión de FW (fwh 12.04) este ejemplo siempre devuelve .T. esté el check del item en cuestión marcado o no. ¿Está solucionado en versiones más recientes?

Gracias,

Code: Select all  Expand view
#include "FiveWin.ch"

function Main()

   local oDlg, oTree

   DEFINE DIALOG oDlg

   @ 0, 0 TREEVIEW oTree OF oDlg SIZE 200, 200 CHECKBOXES

   ACTIVATE DIALOG oDlg CENTERED ON INIT BuildTree( oTree )

   MsgInfo( oTree:aItems[ 1 ]:GetCheck() )

return nil

function BuildTree( oTree )

   local oMenu := Array( 2 ), oSubMenu := Array( 3 )

   oMenu[ 1 ]:= oTree:Add( "Principal" )
      oSubMenu[ 1 ]:= oMenu[ 1 ]:Add( "Imprimir..." )
      oSubMenu[ 1 ]:SetCheck( .T. )

   oMenu[ 2 ]:= oTree:Add( "Proyectos" )
      oSubMenu[ 2 ]:= oMenu[ 2 ]:Add( "Definir Proyectos" )
      oSubmenu[ 3 ]:= oMenu[ 2 ]:Add( "Actualización datos" )

   oTree:Expand()

return nil
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Re: Obteniendo el "check" de un item de un treeview

Postby cnavarro » Fri May 11, 2018 10:04 am

Angel, has probado asi?

Code: Select all  Expand view


   ACTIVATE DIALOG oDlg CENTERED ON INIT BuildTree( oTree ) ;
      VALID ( MsgInfo( oTree:aItems[ 1 ]:GetCheck() ), .T. )

 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6541
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Obteniendo el "check" de un item de un treeview

Postby AngelSalom » Fri May 11, 2018 10:32 am

Diste en el clavo!
Gracias

cnavarro wrote:Angel, has probado asi?

Code: Select all  Expand view


   ACTIVATE DIALOG oDlg CENTERED ON INIT BuildTree( oTree ) ;
      VALID ( MsgInfo( oTree:aItems[ 1 ]:GetCheck() ), .T. )

 
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Re: Obteniendo el "check" de un item de un treeview

Postby AngelSalom » Fri May 11, 2018 10:33 am

... y ahora, este trozo de código tampoco hace caso, vamos que no pone el Check activado. :roll: :roll:
Code: Select all  Expand view
oSubMenu[ 1 ]:SetCheck( .T. )
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Re: Obteniendo el "check" de un item de un treeview

Postby AngelSalom » Fri May 11, 2018 10:43 am

Me contesto, hay que poner

Code: Select all  Expand view

oDlg:bPainted:={|| PonCheck(oTree)}
Function PonCheck (oTree)
  oTree:aItems[1]:SetCheck(.T.)
Return (nil)  
 
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Re: Obteniendo el "check" de un item de un treeview

Postby cnavarro » Fri May 11, 2018 12:12 pm

AngelSalom wrote:... y ahora, este trozo de código tampoco hace caso, vamos que no pone el Check activado. :roll: :roll:
Code: Select all  Expand view
oSubMenu[ 1 ]:SetCheck( .T. )


Angel, en el metodo SetCheck, el primer parámetro es el objeto oItem, es decir
Code: Select all  Expand view

oTree:SetCheck( , .T. )
 

por lo que el cambio, si no le pasas el objeto, es el item seleccionado en ese momento
De otra forma, podrías, por ejemplo:
Code: Select all  Expand view

oTree:SetCheck( oTree:aItems[ 2 ] , .T. )
 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6541
Joined: Wed Feb 15, 2012 8:25 pm
Location: España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 61 guests