FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour To change color of a tree object
Posts: 1091
Joined: Thu Nov 17, 2005 11:08 AM
To change color of a tree object
Posted: Fri Sep 22, 2006 07:14 AM

If I try to color a Tree the background of items remain always white.
I have to obtain a tree of the same color of all others objects in a dialog.
Any trick?

Marco Boschi
info@marcoboschi.it
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
To change color of a tree object
Posted: Fri Sep 22, 2006 08:14 AM

Marco,

Please review samples\TreeDlg.prg

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1091
Joined: Thu Nov 17, 2005 11:08 AM
To change color of a tree object
Posted: Fri Sep 22, 2006 08:31 AM

Yes but background color of items remains White!

Saludos

Marco Boschi
info@marcoboschi.it
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
To change color of a tree object
Posted: Fri Sep 22, 2006 08:46 AM
Marco,

Please check that you have these lines in Class TTreeView:
METHOD ReDefine( nId, oWnd, nClrFore, nClrBack, lDesign, cMsg ) CLASS TTreeView

   DEFAULT oWnd     := GetWndDefault(),;
           nClrFore := oWnd:nClrText,;
           nClrBack := oWnd:nClrPane,; // GetSysColor( COLOR_WINDOW ),;
           lDesign  := .f.
...
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1091
Joined: Thu Nov 17, 2005 11:08 AM
To change color of a tree object
Posted: Fri Sep 22, 2006 09:12 AM

Antonio,
The answer is Yes.
=============== from ttreevie.prg ==============
METHOD ReDefine( nId, oWnd, nClrFore, nClrBack, lDesign, cMsg ) CLASS TTreeView

DEFAULT oWnd := GetWndDefault(),;
nClrFore := oWnd:nClrText,;
nClrBack := oWnd:nClrPane,; // GetSysColor( COLOR_WINDOW ),;
lDesign := .f.

Marco Boschi
info@marcoboschi.it
Posts: 9022
Joined: Thu Oct 06, 2005 08:17 PM
To change color of a tree object
Posted: Sun Sep 24, 2006 07:09 AM

Antonio, do you need a sample of this problem?

EMG

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
To change color of a tree object
Posted: Sun Sep 24, 2006 08:50 AM

Enrico,

samples\TreeDlg.prg is working fine.

I appreciate if you could provide another sample, thanks :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 9022
Joined: Thu Oct 06, 2005 08:17 PM
To change color of a tree object
Posted: Sun Sep 24, 2006 10:26 AM
Here it is:

#include "Fivewin.ch"


FUNCTION MAIN()

    LOCAL oDlg, oTree

    DEFINE DIALOG oDlg;
           SIZE 400, 400

    @ 0, 0 TREEVIEW oTree COLOR CLR_GREEN, CLR_RED

    ACTIVATE DIALOG oDlg;
             ON INIT FILLTREE( oTree );
             CENTER

    RETURN NIL


STATIC FUNCTION FILLTREE( oTree )

    LOCAL oItem

    oItem = oTree:Add( "Test" )

    oItem:Add( "Test1" )
    oItem:Add( "Test2" )
    oItem:Add( "Test3" )

    oTree:Expand()

    RETURN NIL


As you can see, the colors of the subitems are still black on white.

EMG
Posts: 1091
Joined: Thu Nov 17, 2005 11:08 AM
To change color of a tree object
Posted: Sun Sep 24, 2006 01:57 PM

Thank to Yout Enrico and Antonio.

Marco Boschi
info@marcoboschi.it
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
To change color of a tree object
Posted: Sun Sep 24, 2006 02:01 PM

Enrico, Marco,

If you try to build a similar sample using Word VBA built in Macro Editor, it does not show the BackColor property. It looks as it is not supported by Windows API. We are doing more research.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1091
Joined: Thu Nov 17, 2005 11:08 AM
To change color of a tree object
Posted: Sun Sep 24, 2006 02:07 PM

Thank you very much
Muchas gracias
Grazie

Marco :)

Marco Boschi
info@marcoboschi.it
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
To change color of a tree object
Posted: Sun Sep 24, 2006 02:22 PM
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
To change color of a tree object
Posted: Sun Sep 24, 2006 02:28 PM
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 9022
Joined: Thu Oct 06, 2005 08:17 PM
To change color of a tree object
Posted: Sun Sep 24, 2006 03:01 PM
Solved! :-)

#include "Fivewin.ch"


FUNCTION MAIN()

    LOCAL oDlg, oTree

    DEFINE DIALOG oDlg;
           SIZE 400, 400

    @ 0, 0 TREEVIEW oTree COLOR CLR_GREEN, CLR_RED

    ACTIVATE DIALOG oDlg;
             ON INIT FILLTREE( oTree );
             CENTER

    RETURN NIL


STATIC FUNCTION FILLTREE( oTree )

    LOCAL oItem

    oItem = oTree:Add( "Test" )

    oItem:Add( "Test1" )
    oItem:Add( "Test2" )
    oItem:Add( "Test3" )

    oTree:Expand()

    TVSETTEXTCOLOR( oTree:hWnd, CLR_GREEN )
    TVSETBKCOLOR( oTree:hWnd, CLR_RED )

    RETURN NIL


#pragma BEGINDUMP

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

HB_FUNC( TVSETTEXTCOLOR )
{
    hb_retnl( ( LONG ) TreeView_SetTextColor( ( HWND ) hb_parnl( 1 ), hb_parnl( 2 ) ) );
}


HB_FUNC( TVSETBKCOLOR )
{
    hb_retnl( ( LONG ) TreeView_SetBkColor( ( HWND ) hb_parnl( 1 ), hb_parnl( 2 ) ) );
}

#pragma ENDDUMP


EMG
Posts: 1091
Joined: Thu Nov 17, 2005 11:08 AM
To change color of a tree object
Posted: Sun Sep 24, 2006 05:14 PM

Very good!
After dinner I'll try it!
Thanks again

Marco Boschi
info@marcoboschi.it