FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour No me funciona el SETCHECK en tree
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
No me funciona el SETCHECK en tree
Posted: Thu Oct 30, 2008 12:28 AM
No me handa este source, la idea es "armar el tree y como prueba que me marque una de las casillas del checkbox" pero aca no me funciona.

//////////////////////////////////////////////////////////////////////////////
// Programa: test.prg
// Fecha Creación: 10/25/2008
// Hora: 10:50
// Proyecto en xMate: untitled
// Lista de funciones:
// Ultima actualizacion :>: 10/29/2008 22:25
// Historial:
//            >>:
//            10/29/08
//            10/25/08
//////////////////////////////////////////////////////////////////////////////

#include "fivewin.ch"

//------------------------------------------------------------------------------

FUNCTION MAIN()

   LOCAL oTree,;
         oDlg,;
         oBtn

   DEFINE DIALOG oDlg resource "DLG"

      REDEFINE BUTTON oBtn ID 201 OF oDlg

      oTree:= TTreeView():REDEFINE(206, oDlg)

      //----------( Accion boton )----------
      oBtn:bAction:={ || MsgInfo(cadenaItemTree(oTree)) }

      oDlg:bStart      := {|| definirTree(oTree)}

   ACTIVATE DIALOG oDlg CENTERED

   RETURN (nil)

//------------------------------------------------------------------------------

FUNCTION cadenaItemTree(oTree)
   LOCAL nItem,;
         nItem1,;
         oRamaHijo,;
         cCadena := ""

   FOR nItem:= 1 TO Len(oTree:aItems)
      oRamaHijo:= oTree:aItems[nItem]
      cCadena:= cCadena + "."
      FOR nItem1:= 1 TO Len(oRamaHijo:aItems)
         cCadena:= cCadena + IF(oTree:GetCheck(oRamaHijo:aItems[nItem1]),"1","0")
      NEXT nItem1
   NEXT nItem

   RETURN (cCadena)

//------------------------------------------------------------------------------

*************
Aca esta la funcion que no anda.

*************

FUNCTION definirTree(oTree)

   LOCAL oItem    := array(13)

   oItem[1]:= oTree:ADD("Principal")
      oItem[1]:ADD("Imprimir...")

   oItem[2]:= oTree:ADD("hola")
   oTree:expand()

   oTree:setCheck( oItem[1],.t.)
   oTree:refresh()

   RETURN (NIL)

//------------------------------------------------------------------------------
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
No me funciona el SETCHECK en tree
Posted: Thu Oct 30, 2008 09:31 AM

Gustavo,

Ahora comprenderás lo que quise decir al preguntarte si habías probado GetCheck() y SetCheck()

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
No me funciona el SETCHECK en tree
Posted: Thu Oct 30, 2008 09:17 PM
AAAAAAAAAA jeje.
Bien entonces estimado?

Antonio Linares wrote:Gustavo,

Ahora comprenderás lo que quise decir al preguntarte si habías probado GetCheck() y SetCheck()
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
No me funciona el SETCHECK en tree
Posted: Sun Nov 09, 2008 02:24 PM

Antonio,

Tenes alguna solucion para este problema? o alguna idea de como poder modificarlo?

Gracias.

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
No me funciona el SETCHECK en tree
Posted: Mon Nov 10, 2008 07:37 AM

Gustavo,

No, por el momento. SetCheck() debería funcionar pero no lo hace.

Hay que revisarlo y ver donde pueda estar el fallo ó tal vez es la forma de usarlo.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 248
Joined: Wed Jan 11, 2006 11:30 AM
Re: No me funciona el SETCHECK en tree
Posted: Mon Feb 09, 2009 05:19 PM

Alguna Soluçao, para problema de SetCheck ???

Saluds, Ale

aleseribeli@hotmail.com

FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
Posts: 248
Joined: Wed Jan 11, 2006 11:30 AM
Re: No me funciona el SETCHECK en tree
Posted: Tue Feb 10, 2009 11:47 AM
Como iniciar um CheckBox no Tree, marcado como .t. ?

oTree:aItems[ 1 ]:GetCheck(), retorna True,

mas, la Caixa del CheckBox nao Habilita Automatico.

   local oDlg, oTree 
   private oMenu := Array( 3 ), oSubMenu := Array( 3 ) 
 
   DEFINE DIALOG oDlg

   @ 0, 0 TREEVIEW oTree OF oDlg SIZE 100, 150 CHECKBOXES Update
   
   @ 3, 20 BUTTON oBtn PROMPT "Test" ;
	        ACTION Msginfo( oTree:GetCheck( oMenu[ 1 ] )  ) 

   ACTIVATE DIALOG oDlg CENTERED ON INIT ( BuildTree( oTree, oDlg )  )

return nil 

function BuildTree( oTree, oDlg ) 

   oMenu[ 1 ]:= oTree:Add( "Principal" ) 
	   [color=#FF0000]oTree:SetCheck(oMenu[ 1 ], .t. )[/color]
      
		oSubMenu[ 1 ]:= oMenu[ 1 ]:Add( "Imprimir..." )
      
   oMenu[ 2 ]:= oTree:Add( "Proyectos" ) 
      oSubMenu[ 2 ]:= oMenu[ 2 ]:Add( "Definir Proyectos" ) 
      oSubmenu[ 3 ]:= oMenu[ 2 ]:Add( "Actualización datos" ) 

	oTree:Expand() 
	oTree:Refresh()
	oDlg:UpDate() 
   
return nil




Estoy usando el FwH812.
Como resolver isto ???

Saluds, Ale
aleseribeli@hotmail.com

FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: No me funciona el SETCHECK en tree
Posted: Tue Feb 10, 2009 08:33 PM
Ale,

Lo curioso es que si consultamos el estado del item, nada más activarlo, dice que esta marcado (.T.), pero cuando la caja de dialogo se muestra, ya ha perdido su valor (?)
#include "FiveWin.ch"

memvar oMenu, oSubMenu

function Main()   
   
   local oDlg, oTree, oBtn 
   private oMenu := Array( 3 ), oSubMenu := Array( 3 ) 

   DEFINE DIALOG oDlg
   
   @ 0, 0 TREEVIEW oTree OF oDlg SIZE 100, 150 CHECKBOXES

   @ 3, 20 BUTTON oBtn PROMPT "Test" ;
           ACTION Msginfo( oTree:GetCheck( oMenu[ 1 ] ) ) 

   ACTIVATE DIALOG oDlg CENTERED ON INIT BuildTree( oTree, oDlg )

return nil 

function BuildTree( oTree, oDlg ) 

   oMenu[ 1 ] = oTree:Add( "Principal" ) 
      oTree:SetCheck( oMenu[ 1 ], .T. )
      
   oSubMenu[ 1 ] = oMenu[ 1 ]:Add( "Imprimir..." )
      
   oMenu[ 2 ]:= oTree:Add( "Proyectos" ) 
      oSubMenu[ 2 ]:= oMenu[ 2 ]:Add( "Definir Proyectos" ) 
      oSubmenu[ 3 ]:= oMenu[ 2 ]:Add( "Actualización datos" ) 

   oTree:Expand() 

   MsgInfo( oTree:GetCheck( oMenu[ 1 ] ) )  // es .T. !!!
   
return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 248
Joined: Wed Jan 11, 2006 11:30 AM
Re: No me funciona el SETCHECK en tree
Posted: Tue Feb 10, 2009 09:44 PM

Si maestro, es muito estranho, tambien no comprendo, porque el check perde o Valor (.t.).

Vamos aguardar alguna soluçao, eu ja tentei de tudo aqui, pero nada com exito.

Saluds, Ale

aleseribeli@hotmail.com

FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
Posts: 248
Joined: Wed Jan 11, 2006 11:30 AM
Re: No me funciona el SETCHECK en tree
Posted: Wed Feb 11, 2009 01:10 PM
Antonio,

Mire aqui, veja este ejemplo :

    #include "FiveWin.ch"

    memvar oMenu, oSubMenu

    function TreeChk()   
       
       local oDlg, oTree, oBtn
       private oMenu := Array( 3 ), oSubMenu := Array( 3 )

       DEFINE DIALOG oDlg
       
       @ 0, 0 TREEVIEW oTree OF oDlg SIZE 100, 150 CHECKBOXES
				
       @ 3, 20 BUTTON oBtn PROMPT "Test" ;
               ACTION Msginfo( BuildTree( oTree, oDlg ) )
        
       ACTIVATE DIALOG oDlg CENTERED //ON INIT (oBtn:Click() ) //BuildTree( oTree, oDlg )

    return nil

    function BuildTree( oTree, oDlg )

       oMenu[ 1 ] = oTree:Add( "Principal" )
          oTree:SetCheck( oMenu[ 1 ], .T. )
         
       oSubMenu[ 1 ] = oMenu[ 1 ]:Add( "Imprimir..." )
         
       oMenu[ 2 ]:= oTree:Add( "Proyectos" )
          oSubMenu[ 2 ]:= oMenu[ 2 ]:Add( "Definir Proyectos" )
          oSubmenu[ 3 ]:= oMenu[ 2 ]:Add( "Actualización datos" )

       oTree:Expand()

       //MsgInfo( oTree:GetCheck( oMenu[ 1 ] ) )  // es .T. !!!
       
    return nil


Repare no Action del Button. Funciona, normal el tree.

Lo problema me parece ser, en el on Init.

Por favor, teste isso ai se for possivel, Gracias.

Saluds Ale
aleseribeli@hotmail.com

FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: No me funciona el SETCHECK en tree
Posted: Wed Feb 11, 2009 02:15 PM
Ale,

Un descubrimiento muy interesante, gracias! :-)

Ahora podemos usar un TIMER para inicializarlo correctamente:
    #include "FiveWin.ch"

    memvar oMenu, oSubMenu

    function TreeChk()   
       
       local oDlg, oTree, oBtn
       private oMenu := Array( 3 ), oSubMenu := Array( 3 )

       DEFINE DIALOG oDlg

       @ 0, 0 TREEVIEW oTree OF oDlg SIZE 100, 150 CHECKBOXES
            
       @ 3, 20 BUTTON oBtn PROMPT "Test"
        
       ACTIVATE DIALOG oDlg CENTERED ON INIT TreeInit( oTree, oDlg )

    return nil

    function TreeInit( oTree, oDlg )
    
       local oTmr
       
       DEFINE TIMER oTmr OF oDlg ACTION BuildTree( oTree, oDlg ), oTmr:End()
       
       ACTIVATE TIMER oTmr
       
    return nil   

    function BuildTree( oTree, oDlg )

       oMenu[ 1 ] = oTree:Add( "Principal" )
          oTree:SetCheck( oMenu[ 1 ], .T. )
         
       oSubMenu[ 1 ] = oMenu[ 1 ]:Add( "Imprimir..." )
         
       oMenu[ 2 ]:= oTree:Add( "Proyectos" )
          oSubMenu[ 2 ]:= oMenu[ 2 ]:Add( "Definir Proyectos" )
          oTree:SetCheck( oSubMenu[ 2 ], .T. )
          oSubmenu[ 3 ]:= oMenu[ 2 ]:Add( "Actualización datos" )

       oTree:Expand()

    return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 248
Joined: Wed Jan 11, 2006 11:30 AM
Re: No me funciona el SETCHECK en tree
Posted: Wed Feb 11, 2009 02:32 PM

Antonio,

Gracias, agora estas Ok !

Se ocorrer mais algun problema, eu aviso.

Saluds, Ale

aleseribeli@hotmail.com

FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**

Continue the discussion