FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Tree with check
Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM
Tree with check
Posted: Mon Oct 02, 2006 03:53 PM

I have a Tree with TVS_CHECKBOXES.
Is it possible to know if CHECKBOX is ON or OFF ( without use :Cargo ) ?

Regards Maurizio

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Tree with check
Posted: Tue Oct 03, 2006 05:29 AM
Maurizio,
HB_FUNC( TVISCHECKED )  // hTreeView, hItem
{
   hb_retl( TreeView_GetCheckState( ( HWND ) hb_parnl( 1 ), ( HTREEITEM ) hb_parnl( 2 ) ) );
}


MsgInfo( TVIsChecked( oTree:hWnd, oTVItem:hItem ) )
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM
Tree with check
Posted: Tue Oct 03, 2006 06:36 AM

It works.

Thanks again, Antonio

Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM
Tree with check
Posted: Tue Oct 03, 2006 06:57 AM

Hello Antonio

is possible enable or disable CHECKBOX ?

Regards Maurizio

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Tree with check
Posted: Tue Oct 03, 2006 08:05 AM
Maurizio,
HB_FUNC( TVSETCHECK )  // hTreeView, hItem, lOnOff 
{ 
   hb_retl( TreeView_SetCheckState( ( HWND ) hb_parnl( 1 ), ( HTREEITEM ) hb_parnl( 2 ), hb_parl( 3 ) ) ); 
}
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM
Tree with check
Posted: Tue Oct 03, 2006 08:50 AM

Hello Antonio

I have this error

Expression syntax in function HB_FUN_TVSETCHECK.

But the function TreeView_SetCheckState , chek or unchek the CHEKBOX, that I need is to disable or hide the chekbox in front of the Item .

Regrads Maurizio

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Tree with check
Posted: Tue Oct 03, 2006 09:54 AM

Maurizio,

I don't know if it is possible to hide it.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 344
Joined: Tue Oct 11, 2005 11:33 AM
Tree with check
Posted: Tue Oct 03, 2006 08:59 PM
Olá Maurizio,

Tente Isto: Mude em \fwh\source\classes\TTREEVIE.PRG

...
   METHOD SetCheck( nIt, lFlag ) INLINE TVSetCheck( ::hWnd, nIt, lFlag )

   METHOD IsChecked( nIt ) INLINE TVIsChecked( ::hWnd, nIt )
...


e isto

#pragma BEGINDUMP

#include "windows.h"
#include "commctrl.h"
#include "hbapi.h"

HB_FUNC( TVSETCHECK ) // hTreeView, hItem, lOnOff
{
TVITEM tvItem;
   HWND hWnd = ( HWND ) hb_parnl( 1 ); 
   HTREEITEM hItem = ( HTREEITEM ) hb_parnl( 2 );

tvItem.mask = TVIF_HANDLE | TVIF_STATE;
tvItem.hItem = hItem;
tvItem.stateMask = TVIS_STATEIMAGEMASK;

/*
Since state images are one-based, 1 in this macro turns the check off,
and
2 turns it on.
*/
tvItem.state = INDEXTOSTATEIMAGEMASK(( hb_parl( 3 ) ? 2 : 1));

   hb_retl( ( BOOL ) TreeView_SetItem( ( HWND ) hb_parnl( 1 ), &tvItem ) );
}

HB_FUNC( TVISCHECKED ) // hTreeView, hItem
{
TVITEM tvItem;
   HWND hWnd = ( HWND ) hb_parnl( 1 ); 
   HTREEITEM hItem = ( HTREEITEM ) hb_parnl( 2 ); 

// Prepare to receive the desired information.
tvItem.mask = TVIF_HANDLE | TVIF_STATE;
tvItem.hItem = hItem;
tvItem.stateMask = TVIS_STATEIMAGEMASK;

// Request the information.
   hb_retl( ( BOOL ) TreeView_GetItem( ( HWND ) hb_parnl( 1 ), &tvItem ) );

// Return zero if it's not checked, or nonzero otherwise.
   hb_retl( (BOOL) (tvItem.state >> 12) -1 ) ;
}

#pragma ENDDUMP



Use assim:
Para Setar o status:

oTree:SetCheck( oItem:hItem, .F. ) && Uncheck

ou

oTree:SetCheck( oItem:hItem, .T. ) && check

Para Ler o status:

msgstop( oTree:IsChecked( oItem:hItem ) )


Abraços,

Rossine.
Obrigado, Regards, Saludos



Rossine.



Harbour and Harbour++

Continue the discussion