229
Fullfit the caption on the element's width

PROCEDURE OnAnchorClick(oChartView,AnchorID,Options)
	DevOut( Transform(AnchorID,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:AnchorClick := {|AnchorID,Options| OnAnchorClick(oChartView,AnchorID,Options)} /*Occurs when an anchor element is clicked.*/

		oChartView:AllowSelectNothing := .T.
		oChartView:AllowEdit := 0/*exDisallow*/
		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNodes:Add("Sub 1","1234")
			oNode := oNodes:Add("Sub 2","1234")
				oNode:FixedWidth := 256
				oNode:CaptionSingleLine := 1/*exCaptionBreakWrap*/
				oNode:Caption := "<solidline><b>Bank Account</b></solidline><br>+ owner: String <r><a 1;properties>+</a><br><solidline>+ balance: Currency = 0</solidline><br>+ deposit(amount: Currency)<r><a 2;methods>+</a><br>+ withdraw(amount: Currency)"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
228
Break-wrap the caption (truncated)

PROCEDURE OnAnchorClick(oChartView,AnchorID,Options)
	DevOut( Transform(AnchorID,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:AnchorClick := {|AnchorID,Options| OnAnchorClick(oChartView,AnchorID,Options)} /*Occurs when an anchor element is clicked.*/

		oChartView:AllowSelectNothing := .T.
		oChartView:AllowEdit := 0/*exDisallow*/
		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNodes:Add("Sub 1","1234")
			oNode := oNodes:Add("Sub 2","1234")
				oNode:FixedWidth := 96
				oNode:CaptionSingleLine := 1/*exCaptionBreakWrap*/
				oNode:Caption := "<solidline><b>Bank Account</b></solidline><br>+ owner: String <r><a 1;properties>+</a><br><solidline>+ balance: Currency = 0</solidline><br>+ deposit(amount: Currency)<r><a 2;methods>+</a><br>+ withdraw(amount: Currency)"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
227
Break-wrap the caption

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:AllowSelectNothing := .T.
		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNodes:Add("Sub 1","1234")
			oNode := oNodes:Add("Sub 2","1234")
				oNode:CaptionSingleLine := 1/*exCaptionBreakWrap*/
				oNode:Caption := "<solidline><b>Bank Account</b></solidline><br>+ owner: String <r><a 1;properties>+</a><br><solidline>+ balance: Currency = 0</solidline><br>+ deposit(amount: Currency)<r><a 2;methods>+</a><br>+ withdraw(amount: Currency)"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
226
Wrap the caption by <br> or "\r\n" sequence only

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNodes:Add("Sub 1","1234")
			oNode := oNodes:Add("Sub 2","1234")
				oNode:CaptionSingleLine := 1/*exCaptionBreakWrap*/
				oNode:Caption := "This is a bit of long text is displayed on first line.<br>The second line."

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
225
Word-wrap the caption (specify the width to wrap)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNodes:Add("Sub 1","1234")
			oNode := oNodes:Add("Sub 2","1234")
				oNode:Width := 96
				oNode:CaptionSingleLine := 0/*exCaptionWordWrap*/
				oNode:Caption := "This is a bit of long text that should break into words."

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
224
Word-wrap the caption

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNodes:Add("Sub 1","1234")
			oNode := oNodes:Add("Sub 2","1234")
				oNode:CaptionSingleLine := 0/*exCaptionWordWrap*/
				oNode:Caption := "This is a bit of long text that should break into words."

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
223
Caption on a single line (truncated)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNodes:Add("Sub 1","1234")
			oNode := oNodes:Add("Sub 2","1234")
				oNode:CaptionSingleLine := -1/*exCaptionSingleLine*/
				oNode:Caption := "This is a bit of long text that should be truncated."
				oNode:FixedWidth := 128

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
222
Caption on a single line

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNodes:Add("Sub 1","1234")
			oNode := oNodes:Add("Sub 2","1234")
				oNode:CaptionSingleLine := -1/*exCaptionSingleLine*/
				oNode:Caption := "This is a bit of long text that should not be broken."

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
221
Force hover-all feature
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:SetProperty("Background",500/*exScrollHoverAll*/,-1)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
220
Disable hover-all feature (Windows 11 or greater)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:SetProperty("Background",500/*exScrollHoverAll*/,AutomationTranslateColor( GraMakeRGBColor  ( { 1,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
219
Display a custom tooltip
PROCEDURE OnMouseMove(oChartView,Button,Shift,X,Y)
	oChartView:ShowToolTip("new content","",,"+8","+8")
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oChartView,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
218
Shows the tooltip of the object moved relative to its default position
PROCEDURE OnMouseMove(oChartView,Button,Shift,X,Y)
	oChartView:ShowToolTip("<null>","<null>",,"+8","+8")
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oChartView,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/

		oChartView:Root():ToolTip := "This is a bit of text that's shown when the cursor hovers the node."

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
217
ImageSize property on 32 (specifies the size of control' icons/images/check-boxes/radio-buttons)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oAppearance
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oChartView:ImageSize := 32
		oChartView:Font():Size := 16
		oChartView:Images("gBJJgBAIDAAEg4AEEKAD/hz/EMNh8TIRNGwAjEZAEXjAojKAjMLjABhkaABAk0plUrlktl0vmExmUzmk1m03nE5nU7nk9miAoE+oVDolFo1HpFJpU5h8Sf9OqFNqUOqNUqdPq9VrFWrlbr1QpdhAFAkFis1ntFptVrtkrpszrNvmVxqk3uVtm1kmF3sdBvF/wGBmV+j9BYGHwWJulfxdax2NyFdx2JlV6l9Nw7AAGZymdz2Cy2GxErvWcz9ivlwyV21cuxugwktzGIzmvwtl0+53U5y0a0Wazmmyu/3dCyOMyXHx/J5nIr9q3uyqnBxFN3G46ma4vb7mD2Ng4nZze00fDkHC7t7us2rOX5tguetpHRlmz4HVqnXk1PjHO+CMPo9MBMC+j2vC8j7wS8cFNI4kBo05UIvfCT/NsnsApU+0Fqg/T+oy/kPxC0sEQfErKQK96+w28UWRI8UGvO8sTLS9r2PWmsMJTDTask3CsIbIEQRA3shOXEEAO/GclJ9" +;
		"FEKrrA8FRbKMXRIlb0JxCkjS1LMswhCcvuel0cv26cSMa8Ufx+2sQwhEUoSXOCjSbLcnxjKc7sdKUVyq28NtVI71P9P7JxtQEapjQ6fzfM8zPfNE2PhIsLL63E40slk5y7N89LcyU9SvMb3SdUc6VJLj5VLVLfO/PS9KzNFHUa/0XyBD0dxlS9cxhMlTRSoNXypPErWDPyfNS+MwprRNO0FD8wVVZ1AI08URwVRjtJ1WCn21QkkUrXVLVPQS/XIkFgTxT9iONZ9xVTdq+L1eKg3kkF6Upe68XtfV51/MtrVjBlwYFL1ev8y1/P6/lyzzYl02wntj0RVFmS1Qa+M5as93QxEUW9e993rfmQ2+vy65M/mL1lhl/2bj2ByVduMtNhCJT9hdz41nN14Ld12Z9UjfI/oUAaGseiw6+uFLLhcVabJOS5RqOE0BHlZ5VnEr5fOMs3st+aa/bbRzrJGV51Y0b0DbqaWXZD90hIsPbjWu52+6Wyadpe66hhO+P/Xi" +;
		"oW5rD8ZbrUZuVg6n1dsE/cXmewu1m9PVwnd35/nueXho/NaJzmjc61W76esuT77eG8pTquy9TwWH8LEzG8RDfFalx3Gcfvna9rvG/cptGLd9tuI6TZOP5Fiqi99vea+X4VRcBq/JZZtVQ9cwSs5lsXE372+a9z7PbfB3VVqHyvMctLto8uob6eV0m/cD6MN2v+T33t6sBut42vdv2bJ8a997x2maFJfK+qArbGJPEKE+1qTflMsIdW/GCJX17KcT6/czr/X+u1g29B7j/4BQfWkkx4zIHisjhPCmE0K4SwtXM+d4BvHRwNZOoBph9IJvPek9d40FoMJxf691jj2ywQQcHEWET4XJwkTszlVqm2GokewxtBT1DpQjRxDN0rUVDNKdC3lb6tzNOwh6upMSSYfv4YBCl/bsn9PxiFCEo7SI6Obc9HeOrnY8x4jtHtdpN4GRbaorhsbu18Pph5CiHymI0RpSXGJ/z2oUOxYxG858AyiI+bfJtuTcG5yelBJy" +;
		"T8okhqFd4a5yxL0rvulYtKCsZiWxWkc1s1cRoxxwhA31DLE0mR9l9HqX8fJgTDmFMVH0MIsRzVYnwnMi1dyzmhLt2kS2pxIiU62Wj5ptQGlSYFakLonTUJNLKaM5WzlffEkuFkk5wTrhVO2eE7G6lJhxFFYUZ55zmn0WuBCD4pzhirFCKkbomsOoIYmZx5p90LoYWGPdD5g0QmJRKYxbZ6zYoVQ2jVGylSak7KSkFH6RSjpHKFuU+YMyNo5SulkC6I0vonTCitMXPoEpVS2H5FQfEqp2R1opIgAEkJISYARTCukOhmPNI5Ex/wzGHUsicMwA1LHgQ90Y/KpoQHAD+pB/R4NzIaMAB9Xaw1gqaAOsh/A/ptIkWUfhGK1kZH8RgH5GqvgArqRmt4AAPrTroRofBGADkqr6Rmu4D7CEaHARiwpJrEEZsXXwlVjyMWRsaRqwdkLGNBABZmytmyMnaINZqyVpLR2ftKAAAdd6h2osbaskdiq4EZtgSmyNcbVW" +;
		"RJNXe3AA7REar3b0stlAAXBtoRmvJGLjEYAHUWsFcwCD/rnaop9aEICMAPdK5hT6xpeuzdOtAgKuJeGfdq6ggEbkTvAP+p9UCHXrvKkcgIA==")
		oAppearance := oChartView:VisualAppearance()
			oAppearance:Add(4,"gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHLUXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBUrGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDs" +;
		"YYDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVmWCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVoWiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiSe41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbh" +;
		"FCcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==")
		oChartView:SetProperty("Background",0/*exNodeFrame*/,0x4000000)
		oChartView:HasButtons := -1/*exPlus*/
		oNode := oChartView:Root()
			oNode:Image := 1
			oNode:AddAssistant("Assistant 1")
			oNode:AddAssistant("Assistant 2")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234"):Image := 2
			oNodes:Add("Sub 2","1234"):Image := 3
			oNodes:Add("Child <b>2</b>",,"1235"):Expanded := .F.
			oNodes:Add("Sub 2","1235")
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
216
ImageSize property on 16 (default) (specifies the size of control' icons/images/check-boxes/radio-buttons)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oAppearance
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oChartView:ImageSize := 16
		oChartView:Images("gBJJgBAIDAAEg4ACEKAD/hz/EMNh8TIRNGwAjEZAEXjAojJAjMLjABAAgjUYkUnlUrlktl0vmExmUzmk1m03nE5nU7nkrQCAntBoVDolFo1HoM/ADAplLptImdMYFOqdSqlXq1QrVbrlGpVWsFNrNdnNjsk7pQAtNroFnt0sh8Yr9iulTuNxs1Eu8OiT/vsnsNVutXlk/oGGtVKxGLxWNtsZtN8iUYuNvy0Zvd+xNYwdwvl4p870GCqc8vOeuVttmp1knyOayWVy+WzN/ze1wOElenm+12WUz/Bv2/3UyyWrzeutux2GSyGP2dQ33C1ur3GD3M4zUNzHdlWjq/E3nGzVpjWv4HA7fRy/Tv2IrN8rPW6nZ3ve7mUlfu20Z8acvQyb+vY9jasYoDwMm+LytVBDqKG3z8O3Cb8P+mkAuY9cCQ2uL4KaxDKvkp8RNLEjqugnrwQo/UWPzFyeQw5sNLZFENrI4kOqU66pw8uzmOKvTqNqjULJvGL1JO48GtT" +;
		"GsbLdEL3scxLlyiw8dQeoUVxdLTtyKmUjwGlslRPJsnK1HbAKbKCrsQo8uQk/CeP44iaR/ATnTNPLvyxPU+z9P9AUDQVBowiofJXQ6Oo+kKMpIkjztE4TKn4P6JowfgPnwD5/nAjB8AOeAPo0eAA1IAFH07UhAIMpYAVIYFHqBUhwVjV1S1EtQAHxW65V0AZwAeuQAnwB5gAPYViEDVhwAHTQBkCjB4gOhwDmCyhH0sACAg==")
		oAppearance := oChartView:VisualAppearance()
			oAppearance:Add(4,"gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHLUXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBUrGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDs" +;
		"YYDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVmWCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVoWiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiSe41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbh" +;
		"FCcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==")
		oChartView:SetProperty("Background",0/*exNodeFrame*/,0x4000000)
		oChartView:HasButtons := -1/*exPlus*/
		oNode := oChartView:Root()
			oNode:Image := 1
			oNode:AddAssistant("Assistant 1")
			oNode:AddAssistant("Assistant 2")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234"):Image := 2
			oNodes:Add("Sub 2","1234"):Image := 3
			oNodes:Add("Child <b>2</b>",,"1235"):Expanded := .F.
			oNodes:Add("Sub 2","1235")
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
215
Is it possible to show a percent/progress-bar associated with a node (method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oChartView:SetProperty("DefaultNodePadding",-1/*exPaddingAll*/,4)
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1<br>","1234","AK1"):BackgroundExt := "none[(4,100%-22,100%-8,18)](bottom[4](left[10%,back=RGB(255,0,0)]),none[(0,100%-4,100%,4),pattern=0x000,frame=RGB(192,192,192)],none[(2,100%-22,100%-4,22),text=`10%`,align=0x11]])"
			oNodes:Add("Sub 2<br>","1234","AK2"):BackgroundExt := "none[(4,100%-22,100%-8,18)](bottom[4](left[50%,back=RGB(0,255,0)]),none[(0,100%-4,100%,4),pattern=0x000,frame=RGB(192,192,192)],none[(2,100%-22,100%-4,22),text=`50%`,align=0x11]])"
			oNodes:Add("Sub 3<br>","1234","AK3"):BackgroundExt := "none[(4,100%-22,100%-8,18)](bottom[4](left[100%,back=RGB(0,0,255)]),none[(0,100%-4,100%,4),pattern=0x000,frame=RGB(192,192,192)],none[(2,100%-22,100%-4,22),text=`100%`,align=0x11]])"
			oNodes:Add("Child <b>2.1</b>"):AddGroup("Child <b>2.2</b>")
		oNode := oChartView:Nodes:Item("AK1")
			oNode:SetProperty("BackgroundExtValue",3/*exIndexExt3*/,2/*exClientExt*/,"25%")
			oNode:SetProperty("BackgroundExtValue",5/*exIndexExt5*/,4/*exTextExt*/,oNode:BackgroundExtValue(3/*exIndexExt3*/,2/*exClientExt*/))
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
214
Is it possible to show a percent/progress-bar associated with a node (method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oFrame,oFrame1,oFrame2,oFrame3
	LOCAL oNodes
	LOCAL f1,f2

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oChartView:IndentSiblingY := 32
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234","AK1")
			oNodes:Add("Sub 2","1234","AK2")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2.1</b>"):AddGroup("Child <b>2.2</b>")
		oFrame := oChartView:Frames():Add("AK1")
			oFrame:Pattern():Type := 0/*exPatternEmpty*/
			oFrame:SetProperty("Padding",3/*exPaddingBottom*/,20)
			oFrame:BackgroundExt := "bottom[4](left[50%,back=RGB(255,0,0)]),none[(0,100%-4,100%,4),pattern=0x000,frame=RGB(192,192,192)],none[(2,100%-22,100%-4,22),text=`50%`]"
			f1 := oFrame:Index()
		oFrame1 := oChartView:Frames():Item(f1)
			oFrame1:SetProperty("BackgroundExtValue",2/*exIndexExt2*/,2/*exClientExt*/,"25%")
			oFrame1:SetProperty("BackgroundExtValue",4/*exIndexExt4*/,4/*exTextExt*/,oFrame1:BackgroundExtValue(2/*exIndexExt2*/,2/*exClientExt*/))
		oFrame2 := oChartView:Frames():Add("AK2")
			oFrame2:Pattern():Type := 0/*exPatternEmpty*/
			oFrame2:SetProperty("Padding",3/*exPaddingBottom*/,20)
			oFrame2:BackgroundExt := "bottom[12](left[50%,back=RGB(255,0,0)]),none[(0,100%-12,100%,12),pattern=0x000,frame=RGB(192,192,192)],none[(2,100%-22,100%-4,22),text=`50%`]"
			f2 := oFrame2:Index()
		oFrame3 := oChartView:Frames():Item(f2)
			oFrame3:SetProperty("BackgroundExtValue",2/*exIndexExt2*/,2/*exClientExt*/,"75%")
			oFrame3:SetProperty("BackgroundExtValue",2/*exIndexExt2*/,1/*exBackColorExt*/,65280)
			oFrame3:SetProperty("BackgroundExtValue",4/*exIndexExt4*/,4/*exTextExt*/,oFrame3:BackgroundExtValue(2/*exIndexExt2*/,2/*exClientExt*/))
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
213
How can I display the node's caption on multiple lines

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:WidthNode := 64
		oChartView:Root():Caption := "This is a bit of text that should break the line"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
212
Is it possible to show some text/caption on the frame's background

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oFrame
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oChartView:IndentSiblingY := 32
		oChartView:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAADhABWMMACAADACAxRDAMgBQKAAzQFAYawdBgABoGUZ4JhUAIIRZGMIjFDcEwxC6NIpAWCYQDENAxAJCI4DBCAZBwGKPRiASQZUhmHIDTbIEBxfIMIRLE6PZgjOYZchqRYZSjAdIzUAFFr1J4AKbfKJpfoKBJERrScgxeBUNAZBKlY7paoKSpSGw1CTLNoRAKoYTTBK2bbmWwoap2So1XhAdS0XJcWxfGKRbxmWaZZh+R5mXpCMjVMAGGQPIa8MLCSwIJBaHqUQLZNixLStAyxHCtKKhG+vJwHL6BcqnPKKRqSUKcWbcQADFZdYTdNjbch1TWvSZVQSecSke7BQjGJQ2YxWcZUXReeaBDK9ZS4WK+HhRjqAZpCkeoNC8P4DDiWp3nYVwdkaSgrGGVhSnSHJum6CgGAiBIUA0JgziGVJkGWRgTiGBAiG+ZgyDYQhCgQJZbG+UIAGEFgGBEBw9FILJNAMXgMgOIJYD4EoEGESBCBY" +;
		"VIKGMIJTCiDpDliNQ+A+eB+CGCAiCiFgkgmT54HCdoGE0MhgkAM4LhOWJ/CQThIk4NQik4I5+DgP5IDOBJ/B2TgDnwaQ3k+cR0l4P5jBOfguDOCIimCSgwCMKJuDsIRjmkUJ/B8JBBkIRAYmQcRglwP5lAOfhNDKCAikSRgxE8WJyEQIJkEGdhHhuD5xlSXYQicMR0lsP5FBmXhoD+ZhTBgfQrgwMwUnQP5HikfoFhwZxxlYdwbW0CJaWKag8EuI5oTufwwkeIoskIMYPDOfB0iOaZznwbw2GoKoQGaKQFjqEBQikBBjGCf4nCgShoLyTCZnIP5GlqOo5YgAxejyL4GAqeBWi+BI6ngQYvisY5+jMMBHHKHJAjIRoDFqPI0gYOxSlIFptCERpSBGbQgn6SItmyUwAHaM4MgqXBljSLl7GANRuiuMBajsBQLEgRY0gOSxKmUP5uDuCpODIaxxgqbI/g+cR8lSQBwDEYpsBObpBBabAPG6S5yniM4HHKIJ" +;
		"BDiT4TnyKQ6nEbBjBeRhPnKGwYCkMYCgcGAnnGDBSD+RIHhKKJDDmMRSkSbg/nKY58jAOxzCyUIuk0CpMlCKfXAyUwsdIEwMHxZ5TiieoSA6fQjEoLh0hKWxJC0NISksSQsDSHQaFeUQIAKRJIDuT5DnyQ4tnWfR7GCLZMBqXI+i2S5KlyOvukOfxZDICAylSSg8jWUwyGmXYPnMNhpl6/sLg0gxjNBmNkRIQR3CRHMOQIYlwjBxHQH4T45hSBBGO/sVgQRkv7EyO4P4mgeC5E+MsTIvBfgWD+PFBIFgvgaTaPwP4mxdA/CmNQOoWgci5FGJsLAqRYiKE0PgV4TQOh0EIHkQ4xw6DnBMLsb4Hx/AHEAHEdYpwIj2D+JwDwORfjjE+B0H4dA1ASKcK8UYnxzhXAyOsPQvhfgYDoPEQ4RwMBziqDYXY6g9AmFyCwMomwThxHkH0fA5x/jbHuJ8f4dxxj4D8Ecf41A+j8HMMoUgTBMjGG+Pgf4nx1j/EAFA" +;
		"AwAggAIAYFQQ4WgEggDIAQgI=")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234","AK1")
			oNodes:Add("Sub 2","1234","AK2")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2.1</b>"):AddGroup("Child <b>2.2</b>")
		oFrame := oChartView:Frames():Add("AK1,AK2")
			oFrame:SetProperty("Padding",-1/*exPaddingAll*/,8)
			oFrame:SetProperty("Padding",3/*exPaddingBottom*/,22)
			oFrame:SetProperty("BackColor",0x1000000)
			oFrame:Pattern():Type := 0/*exPatternEmpty*/
			oFrame:BackgroundExt := "top[4],left[4],right[4],client,bottom[4],bottom[16,back=0x01000000,text=`<sha ;;0>attention`,align=0x11]"
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
211
How can I draw the pattern with no frame

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oFrame
	LOCAL oNodes
	LOCAL oPattern

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oChartView:IndentSiblingY := 32
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234","AK1")
			oNodes:Add("Sub 2","1234","AK2")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2.1</b>"):AddGroup("Child <b>2.2</b>")
		oFrame := oChartView:Frames():Add("AK1,AK2")
			oFrame:SetProperty("Padding",-1/*exPaddingAll*/,8)
			oPattern := oFrame:Pattern()
				oPattern:Type := 10/*exPatternCross*/
				oPattern:SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 190,190,190 } )  , .F. ))
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
210
How can I show the frame with an EBN color

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oFrame
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oChartView:IndentSiblingY := 32
		oChartView:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAADhABWMMACAADACAxRDAMgBQKAAzQFAYawdBgABoGUZ4JhUAIIRZGMIjFDcEwxC6NIpAWCYQDENAxAJCI4DBCAZBwGKPRiASQZUhmHIDTbIEBxfIMIRLE6PZgjOYZchqRYZSjAdIzUAFFr1J4AKbfKJpfoKBJERrScgxeBUNAZBKlY7paoKSpSGw1CTLNoRAKoYTTBK2bbmWwoap2So1XhAdS0XJcWxfGKRbxmWaZZh+R5mXpCMjVMAGGQPIa8MLCSwIJBaHqUQLZNixLStAyxHCtKKhG+vJwHL6BcqnPKKRqSUKcWbcQADFZdYTdNjbch1TWvSZVQSecSke7BQjGJQ2YxWcZUXReeaBDK9ZS4WK+HhRjqAZpCkeoNC8P4DDiWp3nYVwdkaSgrGGVhSnSHJum6CgGAiBIUA0JgziGVJkGWRgTiGBAiG+ZgyDYQhCgQJZbG+UIAGEFgGBEBw9FILJNAMXgMgOIJYD4EoEGESBCBY" +;
		"VIKGMIJTCiDpDliNQ+A+eB+CGCAiCiFgkgmT54HCdoGE0MhgkAM4LhOWJ/CQThIk4NQik4I5+DgP5IDOBJ/B2TgDnwaQ3k+cR0l4P5jBOfguDOCIimCSgwCMKJuDsIRjmkUJ/B8JBBkIRAYmQcRglwP5lAOfhNDKCAikSRgxE8WJyEQIJkEGdhHhuD5xlSXYQicMR0lsP5FBmXhoD+ZhTBgfQrgwMwUnQP5HikfoFhwZxxlYdwbW0CJaWKag8EuI5oTufwwkeIoskIMYPDOfB0iOaZznwbw2GoKoQGaKQFjqEBQikBBjGCf4nCgShoLyTCZnIP5GlqOo5YgAxejyL4GAqeBWi+BI6ngQYvisY5+jMMBHHKHJAjIRoDFqPI0gYOxSlIFptCERpSBGbQgn6SItmyUwAHaM4MgqXBljSLl7GANRuiuMBajsBQLEgRY0gOSxKmUP5uDuCpODIaxxgqbI/g+cR8lSQBwDEYpsBObpBBabAPG6S5yniM4HHKIJ" +;
		"BDiT4TnyKQ6nEbBjBeRhPnKGwYCkMYCgcGAnnGDBSD+RIHhKKJDDmMRSkSbg/nKY58jAOxzCyUIuk0CpMlCKfXAyUwsdIEwMHxZ5TiieoSA6fQjEoLh0hKWxJC0NISksSQsDSHQaFeUQIAKRJIDuT5DnyQ4tnWfR7GCLZMBqXI+i2S5KlyOvukOfxZDICAylSSg8jWUwyGmXYPnMNhpl6/sLg0gxjNBmNkRIQR3CRHMOQIYlwjBxHQH4T45hSBBGO/sVgQRkv7EyO4P4mgeC5E+MsTIvBfgWD+PFBIFgvgaTaPwP4mxdA/CmNQOoWgci5FGJsLAqRYiKE0PgV4TQOh0EIHkQ4xw6DnBMLsb4Hx/AHEAHEdYpwIj2D+JwDwORfjjE+B0H4dA1ASKcK8UYnxzhXAyOsPQvhfgYDoPEQ4RwMBziqDYXY6g9AmFyCwMomwThxHkH0fA5x/jbHuJ8f4dxxj4D8Ecf41A+j8HMMoUgTBMjGG+Pgf4nx1j/EAFA" +;
		"AwAggAIAYFQQ4WgEggDIAQgI=")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234","AK1")
			oNodes:Add("Sub 2","1234","AK2")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2.1</b>"):AddGroup("Child <b>2.2</b>")
		oFrame := oChartView:Frames():Add("AK1,AK2")
			oFrame:SetProperty("Padding",-1/*exPaddingAll*/,8)
			oFrame:SetProperty("BackColor",0x1000000)
			oFrame:Pattern():Type := 0/*exPatternEmpty*/
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
209
How can I show the frame with an EBN color

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oFrame
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oChartView:IndentSiblingY := 32
		oChartView:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAADhABDYGg6AADACAxRDAMgBQKAAzQFAYawdBgABoGUZ4JhUAIIRZGMIjFDcEwxC6NIpAWCYQDEMw0AJCIyDFCAZBsHKPRoASQZUhmHIDTbIEBxfIMIRLE6PRhmGL4HjWOo0TLAdI0PJMBr3J4AKbfOJpfDSQZDRrTMyReDkNBBBKlY7rKoqRpCFYtDSJNoWVBIahhNiGbbiCQYfouFZdUpRV5VLTUVxbF6YZDvKZZZjmH48RpPUIyNS2FyxHDEIxyEALYACS5fTrCNZPVjgAY4fSqMToDDpKoSWp0QjlOS5jiyYoJZ7nWa2PDdUzXCC3LgADabThqdapcBAeqYHhORRRFSiYD4eAxYw2NaTUrSeS8JBmnmSIYlaOY6H2dwHC0CZWHSeobEmRpbGuOpeFsbhRmgS5/loAJtl4fg5E6b4LFEAwEEISgGhMGZQmocgZMWJA2AMEAxAgTYAlGEJZAkCgdngNYZAYEYYBGdRnk8CBUmq" +;
		"BZOhgZgagaYZIHYHoHmICIGCKCJhiOPgmgUIRTEYKgviKQpyC6C5jAiRgygyYxIlYNoNmOAp2DoM5jwEb8miIUhCCGJBCBIRoRmSCQmEqEpkkkNhOhOZQJBCBgjmUSB0zCSBnjYWoWmWSR2F6F5mAmBhihiZZpFyBoHGQc54n4PxPCOSJxDwZppkIb4cGcSZOHaHInwWeYdmeKZ2HyH5nCmNJxhqD5ZB4aIRg+E5kngOpOiOJoMiOKJaD6EokGkShChaJJpHoVoYiaaYqHaGQ6GiE5i1aJRyBSdA9A8M4QmQOJqiqMorisawKj7ggrEqRo1iyaxqmaOIumsc4OicPJqFkWhXDwIhjHiXQ3GwawikeMhsksLpOjKLQLDaUYzm0KxWlSNZtDMdpEDubAahIVw7A6Q4slYNYNFMXJXDWLhriKZ46G6S4um6OovAuNpxjubwrladI9m4O4SmAOptlgbhSDoMADECUAzmKIxDAWQZNBwGwJkIMIsDcDJDnCPB" +;
		"HA6RIxAwTwCkCcADiIUoHGUI4WioMhMhMIJKTeHIPCWSWUCcKJKnIfI3CqS4ykyPwykwcxMgMIZHg4TBuByFIOCOBJhDCDAjASRHB34RZRDQbQnEiUp0H0NxKlONJND8UpUHUQwPEAMBzlOBw6gaSB9HSXpXkuQpsjoL4LlKcxklmNhdh8apaHaTYjG6Wp2n2NxwlydwtlYLpYjWcx7F0EMYYuxsi4DaJsMoqQ1MuHKLkNowh4D8BuBEYo8QuBvAmMceInBDgdGQPITgnwWBbDgEUUw/g2jvD2O4XSdATDBC4wsUoiQwBYagEcJ41B6idC+F0arQQ3hjGuPYLorw0jbEsB0DIWxoAbA4OwHIvRuDmFiFAKYlBihZCoFQfA3gjiPc+J43g5V+BvFGOcfQXhXipHWJUHwGQmjgHuNocIEAiNHFCKgKAlACgBCQFESgfwfjTHoH0L4bxsj3H6H8R43R8h+A+J8do+h/gFA+MgKAfATChAcPcaA6xvgRAGEw" +;
		"NIDQQg0BMEQZAngJiiDsAUIAyALgDDAIQB4ggoA6AUEEDAKwCDgFoBkQYEA2BOGAHEGYAQDCUAEIAF4fgBANACCgEgxBICYAkOILQFQhDICuAsMIhAXiGCgLoDQQwMBrAYOEWgORDgQHYEsIQcQSgJDCBIDggAmAkDQAgYIFgRDEEQJACQEQTAlGIKgTIExxB0CiIkWITgUBFCQKUCoYhiBXEWEIIQIwEC4ESBAKA3AhgZHGEAIYCAogIn+FARIjQIiqBoMYXA3QNhjEIGwRwURfA5GOckDo4xaB5AiDESgQgGgYp6BAagAgwBjB4D8Q40B9AhCIBgQYkQJAqlQLkDoIwyCEEYJIKQPgkjJAyCkEo5BaCZAgHICgPhkA5AAIYMAEBngZGGDgHgBw4DsA+IMdAfBKgSFUFQZQuQugrDKIQVglgpC+CyMsDIaQWjlFoLkB4khKA7CUCFSAxwmChEoGEZAOADgAHgB0QYtBjiZBmCIMoTBs2uHMFwaImRph" +;
		"KDQE0HIrQahmGAHYTAgRhBfCYAkQgMxBhQlGCEYwYhnBAHCDkU4RByidCmJ4OozhMjZB2OcOg8ROizGcSgLIwgNBmHYAARATw/BBEMDAYQGAhhcHEKAEIphAjQC0AUII6ASgIFANQE04hdAdCEKgQoDROBTHwDAZKDQMBnHEDwBYoQ2AtnEMYDA6B6ggFGPQQ1YgdBNCQKkIoJRSg0E8JUKQ2gshLGGB0DYCw6BYCIEIGIEhg4JCoAoQIeAXCFG0HkJ4qR2g/FQFUAwosfiNCgOoHoRRUgVBcKUKg0BdhOCEKMAoexxAmAiMAGIogaCCDhccQIXAVCFCgLEK4ah+heFYBURwsQrBaGGFkdYJQ0CsGqKYWwVhdDLCuAIVoWQEiDCcKsYwBBA1zEmAkA4wB6AeEIGARQEQ1j1EAK8ewBhhBYB2A0MArEzixBsB4YoWBtgZDGMIFoewDi1L0EAEggBNhHEgIkWYQwkiBCEAUZANQ2D9FCBoWwghojaBWEkN" +;
		"I7QaipFoLYVw1AtDLCqGsIwrAQCzEGEIZoCBNgwCoJ0EArRbCwAUN4LY2w+hvHcAUYIuArgOHEEAFYaw3BKEgOsG4oAACAEAQEA==")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234","AK1")
			oNodes:Add("Sub 2","1234","AK2")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2.1</b>"):AddGroup("Child <b>2.2</b>")
		oFrame := oChartView:Frames():Add("AK1,AK2")
			oFrame:SetProperty("Padding",-1/*exPaddingAll*/,8)
			oFrame:SetProperty("BackColor",0x1000000)
			oFrame:Pattern():Type := 0/*exPatternEmpty*/
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
208
How can I show the frame with a solid color

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oFrame
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234","AK1")
			oNodes:Add("Sub 2","1234","AK2")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2.1</b>"):AddGroup("Child <b>2.2</b>")
		oFrame := oChartView:Frames():Add("AK1,AK2")
			oFrame:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oFrame:Pattern():Type := 0/*exPatternEmpty*/
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
207
Is it possible to enlarge/shrink the frame

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oFrame
	LOCAL oNodes
	LOCAL oPattern

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234","AK1")
			oNodes:Add("Sub 2","1234","AK2")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2.1</b>"):AddGroup("Child <b>2.2</b>")
		oFrame := oChartView:Frames():Add("AK1,AK2")
			oFrame:ShowOnBackground := .F.
			oFrame:SetProperty("Padding",-1/*exPaddingAll*/,-4)
			oPattern := oFrame:Pattern()
				oPattern:Type := 261/*exPatternFrame+exPatternFDiagonal*/
				oPattern:SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 190,190,190 } )  , .F. ))
				oPattern:SetProperty("FrameColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
206
Is it possible to draw the frame in front, rather than showing it on the control's background

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oFrame
	LOCAL oNodes
	LOCAL oPattern

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234","AK1")
			oNodes:Add("Sub 2","1234","AK2")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2.1</b>"):AddGroup("Child <b>2.2</b>")
		oFrame := oChartView:Frames():Add("AK1,AK2")
			oFrame:ShowOnBackground := .F.
			oPattern := oFrame:Pattern()
				oPattern:Type := 261/*exPatternFrame+exPatternFDiagonal*/
				oPattern:SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 190,190,190 } )  , .F. ))
				oPattern:SetProperty("FrameColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
205
How do I show or hide a frame

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oFrame
	LOCAL oNodes
	LOCAL oPattern

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234","AK1")
			oNodes:Add("Sub 2","1234","AK2")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2.1</b>"):AddGroup("Child <b>2.2</b>")
		oFrame := oChartView:Frames():Add("AK1,AK2")
			oFrame:Visible := .T.
			oPattern := oFrame:Pattern()
				oPattern:Type := 261/*exPatternFrame+exPatternFDiagonal*/
				oPattern:SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 190,190,190 } )  , .F. ))
				oPattern:SetProperty("FrameColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
204
How can I display the frame arround the node itself

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oFrame,oFrame1
	LOCAL oNode
	LOCAL oNodes
	LOCAL oPattern,oPattern1

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oNode := oChartView:Root()
			oNode:AddAssistant("Assistant 1")
			oNode:AddAssistant("Assistant 2")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234","AK1")
			oNodes:Add("Sub 2","1234","AK2")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2.1</b>",,"GR1"):AddGroup("Child <b>2.2</b>"):Key := "GR2"
		oFrame := oChartView:Frames():Add("1234")
			oPattern := oFrame:Pattern()
				oPattern:Type := 261/*exPatternFrame+exPatternFDiagonal*/
				oPattern:SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 190,190,190 } )  , .F. ))
				oPattern:SetProperty("FrameColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oFrame1 := oChartView:Frames():Add("GR2")
			oPattern1 := oFrame1:Pattern()
				oPattern1:Type := 261/*exPatternFrame+exPatternFDiagonal*/
				oPattern1:SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 190,190,190 } )  , .F. ))
				oPattern1:SetProperty("FrameColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
203
How can I display the frame arround group nodes only

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oFrame
	LOCAL oNode
	LOCAL oNodes
	LOCAL oPattern

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oNode := oChartView:Root()
			oNode:AddAssistant("Assistant 1")
			oNode:AddAssistant("Assistant 2")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234","AK1")
			oNodes:Add("Sub 2","1234","AK2")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2.1</b>",,"GR1"):AddGroup("Child <b>2.2</b>"):Key := "GR2"
		oFrame := oChartView:Frames():Add("root")
			oFrame:Nodes := "GR1(group)"
			oPattern := oFrame:Pattern()
				oPattern:Type := 261/*exPatternFrame+exPatternFDiagonal*/
				oPattern:SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 190,190,190 } )  , .F. ))
				oPattern:SetProperty("FrameColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
202
How can I display the frame arround assistant nodes only

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oFrame
	LOCAL oNode
	LOCAL oNodes
	LOCAL oPattern

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oNode := oChartView:Root()
			oNode:AddAssistant("Assistant 1")
			oNode:AddAssistant("Assistant 2")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234","AK1")
			oNodes:Add("Sub 2","1234","AK2")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2.1</b>"):AddGroup("Child <b>2.2</b>")
		oFrame := oChartView:Frames():Add("root")
			oFrame:Nodes := "root(assistant)"
			oPattern := oFrame:Pattern()
				oPattern:Type := 261/*exPatternFrame+exPatternFDiagonal*/
				oPattern:SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 190,190,190 } )  , .F. ))
				oPattern:SetProperty("FrameColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
201
How can I display the frame arround child nodes only

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oFrame
	LOCAL oNode
	LOCAL oNodes
	LOCAL oPattern

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oNode := oChartView:Root()
			oNode:AddAssistant("Assistant 1")
			oNode:AddAssistant("Assistant 2")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234","AK1")
			oNodes:Add("Sub 2","1234","AK2")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2.1</b>"):AddGroup("Child <b>2.2</b>")
		oFrame := oChartView:Frames():Add("root")
			oFrame:Nodes := "root(child)"
			oPattern := oFrame:Pattern()
				oPattern:Type := 261/*exPatternFrame+exPatternFDiagonal*/
				oPattern:SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 190,190,190 } )  , .F. ))
				oPattern:SetProperty("FrameColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
200
How can I show the frame arround all child, assistant, group nodes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oFrame
	LOCAL oNode
	LOCAL oNodes
	LOCAL oPattern

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oNode := oChartView:Root()
			oNode:AddAssistant("Assistant 1")
			oNode:AddAssistant("Assistant 2")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234","AK1")
			oNodes:Add("Sub 2","1234","AK2")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2.1</b>"):AddGroup("Child <b>2.2</b>")
		oFrame := oChartView:Frames():Add("root")
			oFrame:Nodes := "root(all)"
			oPattern := oFrame:Pattern()
				oPattern:Type := 261/*exPatternFrame+exPatternFDiagonal*/
				oPattern:SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 190,190,190 } )  , .F. ))
				oPattern:SetProperty("FrameColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
199
We need to visualy group nodes that have the same parent but also have other siblings. Is it anyway possible to draw an additional border around a group of nodes in this control

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes
	LOCAL oPattern

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oNode := oChartView:Root()
			oNode:AddAssistant("Assistant 1")
			oNode:AddAssistant("Assistant 2")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234","AK1")
			oNodes:Add("Sub 2","1234","AK2")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2.1</b>"):AddGroup("Child <b>2.2</b>")
		oPattern := oChartView:Frames():Add("AK1,AK2"):Pattern()
			oPattern:Type := 261/*exPatternFrame+exPatternFDiagonal*/
			oPattern:SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 190,190,190 } )  , .F. ))
			oPattern:SetProperty("FrameColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
198
How can I draw a pattern on a node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oFrame
	LOCAL oNodes
	LOCAL oPattern

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:IndentSiblingY := 30
		oChartView:ShowLinksDir := .T.
		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oChartView:AntiAliasing := .T.
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"LA"):ShowLinkDir := .F.
			oNodes:Add("L1_B",,"LB")
			oNodes:Add("L2_A","LA","LA2")
			oNodes:Add("L2_B","LB","LB2")
		oFrame := oChartView:Frames():Add("LB")
			oFrame:SetProperty("Padding",-1/*exPaddingAll*/,-2)
			oPattern := oFrame:Pattern()
				oPattern:Type := 6/*exPatternBDiagonal*/
				oPattern:SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
			oFrame:ShowOnBackground := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
197
How do I use as a WBS control (WBS is a hierarchical and incremental decomposition of the project into phases, deliverables and work packages )

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oAppearance
	LOCAL oNode,oNode1,oNode10,oNode11,oNode12,oNode13,oNode14,oNode15,oNode16,oNode17,oNode18,oNode19,oNode2,oNode20,oNode21,oNode22,oNode23,oNode24,oNode25,oNode26,oNode27,oNode28,oNode29,oNode3,oNode30,oNode31,oNode32,oNode33,oNode34,oNode35,oNode36,oNode37,oNode38,oNode39,oNode4,oNode40,oNode41,oNode42,oNode43,oNode44,oNode45,oNode46,oNode47,oNode48,oNode49,oNode5,oNode50,oNode51,oNode52,oNode53,oNode54,oNode55,oNode56,oNode57,oNode58,oNode59,oNode6,oNode7,oNode8,oNode9
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oAppearance := oChartView:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAADhABdQFg6AADACAxRDAMgBQKAAzQFAYawdBgABoGUZ4JhUAIIRZGMIjFDcEwxC6NIpAWCYQDENQwSSMMJwSKYYBiASEYJASQZUhmHIDTbIEBxfIMIRLE6PZbmEYYfgeNY6TQCcIgVD0ExhAZ2Q4EQAKRpOFY/DBQNLgAKNCQ3LaQY7BaKgZouTYDVrVNSVFC0IBkGoSbauCIJHrGCZ1RBYMI0VDNRwHJiMbRtSyqXjGJ4pSrAcq0FAgYRHI6jZxnGL5chqPqGVjMNZ1bQuKwzT0Ld5wTYsdydBK1MIkTKKaoORZgRpYUI6FAeSgBWyPcCqPSoDrKdo4XLdYwbeAFcSPD6+NBhG7tXm/NarNTgTB6DBthsGJbgYYw9AQVxBoOch2hEbh+nAARYkQdZ7CMPYGH+FxmlqbJ5lqDAdjMC5AmIW54hwaBvA4IQ8D+T8IFscgenAAZMHiEgWiWdRZlSAAhAkFAGq6dAdEcIYVF4QJKCA" +;
		"HQDBCBJYGUGQNhCEIhiSCJaGAYQWBsIYmEEFgJAGQ42CyC4iliPgygsT4olSXg3g2Qwwk0MpMiMLJIg8Y54niTYOmPPJMDMDIonSSU7jMJJbDaTYjlYUoMmMCRWFQAAlEkZgtDgTgjgCJQpEoIgkgkIQHnIAB7CACARnIaIaiaGYuG6GxmhmFB7CGSICAyHwoAmQxQlQNIlikWgthYIwaAYVQvAuQpsg0IxIhKTIzCwToTiiaYACkChGhKJJpEOQoWC+C5imyCgiggYpUzMZ5Yj6AIfg6UpcjgLYInIPILhOTYaEIUg9EoItfCGCByAiCV2lIKILCGK4qnKO4YggWpQgIJxJmIaJhDgDgKECaIykkUhUhILQLEKRh9iiYpzCSSQxmgcgkm2NppAKbI8C4RoBiQYgSgSMQQEEEIDjECBDA8LorjKa47EQMQSm4DpEhEKBDBeRgBGqMQnmkA5in4JAJAINoEC6JR4jyaQ6E6AhEhIIxNBMRJPiQCYyHCGA" +;
		"UgUMQwEgEhhkEOBHBOBJxCMHJHjGXB/CKSBxlENwaj1qgsEwERICIDB/iQDgjgiYYvE2cx8l2KIinoEI5CYSYiFqEAz0mMBZBbwIkEsEN+gMSpSHSTITEqSoEFyGBHCoSoihqEAsgsIo8ikKhKGiVJ6AADwTkicQlAkUhElA+Z4VUHpHGuRA8lMdI9DscJc8r5QQAaIYsGUOpOjoOwHCEJAUgBh8B1EAAcHIzg5gPCGNgdQfRPhnGiLINhhQEDCBcGUDYphxjLHkNgfwTARhiHEBYWAVxpI1HQDcDjthiAADoKcCgJgbs7FyG4LQagBBgE0CMOYOxLhtGY/AcAegNgTHIPkHISAHADEQNYOA2BwAHEQHABwQxMDbCQEscoEBAAgEOD0V4cR0jyGCPAPwHAvh0EAOIHIDRfA/EaGMfYfguAACiBQIg/xWAbH0F8J4bxSD6G8MUMo7Q9ieHuI8eA0gLjfG2PUPQnwvhvHsPsGABxhD8E+AMbgfhVDJH2L8" +;
		"U48wAjbEGPwPo7x8j4F4FccwHAhhiEgBQEQhAnCDGgHwBonxiAZD+G8Lo/hHj3H8PELIiBwgOFCNQHAqQAhYBWAUIARAECgHyKkIIqAIgGGCLgUIFAhB5CQAcFAGgcEHHKBwUYkAdiHDgOaAIKBigYCCFAFQhBzChAWKEOYzwDhCEwFMBQNxwD3C8CsPgHQhANEuA4Uw+gdhHDAOwBogRYAzFuGAQIEgQAzCSGUAIbAXAFCiKIGghhBCQAeAFIgDgwjMByEAAYXg1hiEwFgBYAQugAGIPsTodgnDSBgMca4LhqChCgD4CIYgYBDmcI4GIxgUCYAm1oPIjwgjmFQMYWA1gNCiBUqcII6gegUEAHwB4oRwhzEGLge4GAOC6HUAcMIsAbCGDqLYHYVBACTAkIIIAYigCIGcBQCArQKiiFQFERQUQhDMAOBgcIWAggUBGIMfAVAHhCBwEgBAMg+jbFqCcHYLxvg4D2A8QI3AziMHiJoUgFhACyCwIINofwHi" +;
		"JDAJUKw2B2ARGEEAIwCxIh2BaNQQA/ROBRGoFYQ48B/AeEGEt99lQOgDFgGcAtFgdgHEANIMAhAIDKAygkQAEAAjxBeIoCI7QfjUEEEwDIIgWBFEQHUSANxsAqEEEUdwlA4iJCSFYEwhBsCXE0KoIAexnj4DoDkEwaBmgYCGAwMADAkCFCMMYAQOgMhQEIHsaIVQQDXFOOgRtwAUguAcAUU1iw1CWA6OwdIOQFBxCgCkDgeBribBmIgP4KQiAAB+KoAg2QNiDDoG0BQyQzg+EGOAWAFgRC4DsEURQYAdhWFKAoKAVQAB/AcHEaAORiioFqBYMWFATCZEsBsIYcA0gMGCJwGAhg4DQAwKsDAYQGzZBkAcSA8gODEBEGQVIQhajUEeeYKY1QIDrBCIAEg0xIAwEgBNkAAADUTA6B4MQEwv0UEGLAUgzhf04AKGEg4BhYD2B0MUAABApAAvqI8WAqAdDGGwJsEIXwWDtE0AAA4fhmDZCmJMMwbBkgBIC")
			oAppearance:Add(2,"gBFLBCJwBAEHhEJAADhABEEMACAADACAxRDAMgBQKAAzQFAYawdBgABoGUZ4JhUAIIRZGMIgdBINQTDCLYyiUBYJhAMYSAJCI4jBCAZRXEAaQIkKY4ZDKCY2QLIEgSFCETQlEAYZgkCB5UiGNIkQLSFDABJMBraDgSAApeoYVj4NZASANFB0bKcQAVDSOKRjeCacpOUpQRZLIyiLZVWQSGoYLahW4YQiKIJKRTXdhULQtLS5FaWZbte6LchqOAAYbOV6ynSeV6NUJNc5xVicBgrBKlI6nGxIJqaZpVYzPeQQTTUby5OyEbyADJ4DqEAKaUrZNoZfhkBhlNa2YguC4gAzudaUZhCOqABpWYYLDS/JSGCYJGDcOaVRZ0FJUVwPg8GZkkCcBQDGJw0HOJ5gECdRUi0dxXi2IJbG4Jp+huHpzH0GouF2eA+B4F4bkESwEEISgGhMGZQmocgZFQFAki4TIAAECBNgCUYQsaCgRjQdRjAYERhmIBB5gIQBwm2" +;
		"BROlOSgaDMIZCmoHoHmICIGB8MJiEOFgmD+IoIGEA4GA4aI0kSC5NliRJrgyYxIlYNoNkyGJkliDpPlidQDD2ZADBYQg6iQQ46EaEZkgkJhKhGTw5DSSITk4eRFAMNRlEMXhWDuZYJC4WoWmWA4+CYORMGmBQDguTBDg4Zg8GaA5CGqGpmkmNhuhuZoim4chAkuaZUmmHZPBgahoh6Z5JnYfofmGI5IjmIJnEmWh3D4D0nn+IpokmboBgeaBSnodw6E+I5YnOIBpgoZoaiaJ9IHOJAAAmVoSh2aRaF6G4pmqCBqh6KAqCkEJqD6TxzlKHosmsSpWjaExPEqZosh0apqkKMotmwCwCjkPQrjKeg0D8T4TlaQ4ymySw2k6LhPFsRpFDsLRDmCdw9i0GxmlqNptksdJ2jebBTjaYoQC0ex+maOZuguJppjkLBZByeI7m4S5GnKPJvEkApvD4Jwim6EY7i8C5Wn6P4vHuZoRhcT4cBad5BnCDAnAqO5wFOZw" +;
		"CigZxZiyepEnCXBXBaRZxgwFwTD6MJ6goaw+nETBnCKSIxjwdh1h6T5jm8IOuEyNwukuT4siie5JguaZsn+ShzAyZw6kyMJ4hCQ44g6U5/DeTI0E0FxGlGcojnMSgvDSSROFQOANnMfxCD+dItFcVpVnWDRbFOFxMH0dQDiATItgaZpUnUOJ3GaWZ2gOdxklCDQNjYX4KmEaYYmMM43EkP0d4tR3gbBKKgOwGgtjsFQGodQuxCAvAWFIMwnwGgcEyCYC4FRijxE4Gl0AnAuCOFWBUAABwth+AACAEBAQ=")
			oAppearance:Add(3,"gBFLBCJwBAEHhEJAADhABI8IQAAYAQGKIYBkAKBQAGaAoDDWDoMAANAyjPBMKgBBCLIxhEYobgmGIXRpFMbxAKQahLEiTIklBI8ExXFqMQCkGKocgONYgTLOMZOXCEEwCgI=")
		oChartView:AntiAliasing := .T.
		oChartView:IndentSiblingY := 4
		oChartView:ShowRoundLink := .T.
		oChartView:PenLink := 0/*exPenSolid*/
		oChartView:SetProperty("SelColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,0 } )  , .F. ))
		oChartView:HasButtons := -1/*exPlus*/
		oChartView:SetProperty("DefaultNodePadding",-1/*exPaddingAll*/,6)
		oNode := oChartView:Root()
			oNode:Caption := "Constuction of a House"
			oNode:SetProperty("BackColor",0x1000000)
			oNode:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
			oNode1 := oNode:AddAssistant("<font ;6>Work:<r>100.00%<br>Budget:<r>$215,500.00")
				oNode1:Left := .F.
				oNode1:ShowLinks := .F.
				oNode1:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode1:FixedWidth := 72
				oNode1:SetProperty("BackColor",0x2000000)
		oNodes := oChartView:Nodes()
			oNode2 := oNodes:Add("1. Internal","Root","Internal")
				oNode2:ArrangeSiblingNodesAs := 2/*exTree*/
				oNode2:ShowRoundLink := .F.
				oNode2:SetProperty("BackColor",0x1ff0000)
				oNode2:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
				oNode3 := oNode2:AddAssistant("<font ;6>Work:<r>45.60%<br>Budget:<r>$86,500.00")
					oNode3:Left := .F.
					oNode3:ShowLinks := .F.
					oNode3:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode3:FixedWidth := 72
					oNode3:SetProperty("BackColor",0x2000000)
			oNode4 := oNodes:Add("1.1 Electrical","Internal","Electrical")
				oNode4:ShowRoundLink := .F.
				oNode4:SetProperty("BackColor",0x100ff00)
				oNode4:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
				oNode5 := oNode4:AddAssistant("<font ;6>Work:<r>11.80%<br>Budget:<r>$25,000.00")
					oNode5:Left := .F.
					oNode5:ShowLinks := .F.
					oNode5:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode5:FixedWidth := 72
					oNode5:SetProperty("BackColor",0x2000000)
			oNode6 := oNodes:Add("1.1.1 Rough-in electrical","Electrical","RoughElectrical")
				oNode6:SetProperty("BackColor",0x3000000)
				oNode6:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode7 := oNode6:AddAssistant("<font ;6>Work:<r>2.80%<br>Budget:<r>$5,000.00")
					oNode7:Left := .F.
					oNode7:ShowLinks := .F.
					oNode7:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode7:FixedWidth := 72
					oNode7:SetProperty("BackColor",0x2000000)
			oNode8 := oNodes:Add("1.1.2 Install and Terminate","Electrical","InstallTerminate")
				oNode8:SetProperty("BackColor",0x3000000)
				oNode8:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode9 := oNode8:AddAssistant("<font ;6>Work:<r>1.90%<br>Budget:<r>$5,000.00")
					oNode9:Left := .F.
					oNode9:ShowLinks := .F.
					oNode9:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode9:FixedWidth := 72
					oNode9:SetProperty("BackColor",0x2000000)
			oNode10 := oNodes:Add("1.1.3 HVAC Equipment","Electrical","HVAC")
				oNode10:SetProperty("BackColor",0x3000000)
				oNode10:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode11 := oNode10:AddAssistant("<font ;6>Work:<r>7.10%<br>Budget:<r>$15,000.00")
					oNode11:Left := .F.
					oNode11:ShowLinks := .F.
					oNode11:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode11:FixedWidth := 72
					oNode11:SetProperty("BackColor",0x2000000)
			oNode12 := oNodes:Add("1.2 Plumbing","Internal","Plumbing")
				oNode12:ShowRoundLink := .F.
				oNode12:SetProperty("BackColor",0x100ff00)
				oNode12:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
				oNode13 := oNode12:AddAssistant("<font ;6>Work:<r>33.80%<br>Budget:<r>$61,000.00")
					oNode13:Left := .F.
					oNode13:ShowLinks := .F.
					oNode13:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode13:FixedWidth := 72
					oNode13:SetProperty("BackColor",0x2000000)
			oNode14 := oNodes:Add("1.2.1 Rough-in plumbing","Plumbing","RoughPlumbing")
				oNode14:SetProperty("BackColor",0x3000000)
				oNode14:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode15 := oNode14:AddAssistant("<font ;6>Work:<r>11.30%<br>Budget:<r>$22,000.00")
					oNode15:Left := .F.
					oNode15:ShowLinks := .F.
					oNode15:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode15:FixedWidth := 72
					oNode15:SetProperty("BackColor",0x2000000)
			oNode16 := oNodes:Add("1.2.2 Set plumbing fixtures and trim","Plumbing","PlumbingFixtures")
				oNode16:Width := 256
				oNode16:SetProperty("BackColor",0x3000000)
				oNode16:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode17 := oNode16:AddAssistant("<font ;6>Work:<r>13.20%<br>Budget:<r>$31,000.00")
					oNode17:Left := .F.
					oNode17:ShowLinks := .F.
					oNode17:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode17:FixedWidth := 72
					oNode17:SetProperty("BackColor",0x2000000)
			oNode18 := oNodes:Add("1.2.3 Test and clean","Plumbing","PlumbingTest")
				oNode18:SetProperty("BackColor",0x3000000)
				oNode18:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode19 := oNode18:AddAssistant("<font ;6>Work:<r>9.30%<br>Budget:<r>$8,000.00")
					oNode19:Left := .F.
					oNode19:ShowLinks := .F.
					oNode19:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode19:FixedWidth := 72
					oNode19:SetProperty("BackColor",0x2000000)
			oNode20 := oNodes:Add("2. Foundation","Root","Foundation")
				oNode20:ArrangeSiblingNodesAs := 2/*exTree*/
				oNode20:ShowRoundLink := .F.
				oNode20:SetProperty("BackColor",0x1ff0000)
				oNode20:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
				oNode21 := oNode20:AddAssistant("<font ;6>Work:<r>24.00%<br>Budget:<r>$46,000.00")
					oNode21:Left := .F.
					oNode21:ShowLinks := .F.
					oNode21:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode21:FixedWidth := 72
					oNode21:SetProperty("BackColor",0x2000000)
			oNode22 := oNodes:Add("2.1 Excavate","Foundation","Excavate")
				oNode22:ShowRoundLink := .F.
				oNode22:SetProperty("BackColor",0x100ff00)
				oNode22:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
				oNode23 := oNode22:AddAssistant("<font ;6>Work:<r>24.00%<br>Budget:<r>$46,000.00")
					oNode23:Left := .F.
					oNode23:ShowLinks := .F.
					oNode23:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode23:FixedWidth := 72
					oNode23:SetProperty("BackColor",0x2000000)
			oNode24 := oNodes:Add("2.1.1 Pour Concrete","Excavate","Concrete")
				oNode24:SetProperty("BackColor",0x3000000)
				oNode24:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode25 := oNode24:AddAssistant("<font ;6>Work:<r>7.90%<br>Budget:<r>$30,000.00")
					oNode25:Left := .F.
					oNode25:ShowLinks := .F.
					oNode25:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode25:FixedWidth := 72
					oNode25:SetProperty("BackColor",0x2000000)
			oNode26 := oNodes:Add("2.1.2 Cure & Strip Forms","Excavate","CureForms")
				oNode26:SetProperty("BackColor",0x3000000)
				oNode26:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode27 := oNode26:AddAssistant("<font ;6>Work:<r>10.30%<br>Budget:<r>$70,000.00")
					oNode27:Left := .F.
					oNode27:ShowLinks := .F.
					oNode27:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode27:FixedWidth := 72
					oNode27:SetProperty("BackColor",0x2000000)
			oNode28 := oNodes:Add("2.2 Steel Erection","Foundation","Steel")
				oNode28:ShowRoundLink := .F.
				oNode28:SetProperty("BackColor",0x100ff00)
				oNode28:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
				oNode29 := oNode28:AddAssistant("<font ;6>Work:<r>5.00%<br>Budget:<r>$9,000.00")
					oNode29:Left := .F.
					oNode29:ShowLinks := .F.
					oNode29:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode29:FixedWidth := 72
					oNode29:SetProperty("BackColor",0x2000000)
			oNode30 := oNodes:Add("2.2.1 Steel Columns","Steel","SteelColumns")
				oNode30:SetProperty("BackColor",0x3000000)
				oNode30:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode31 := oNode30:AddAssistant("<font ;6>Work:<r>2.80%<br>Budget:<r>$50,000.00")
					oNode31:Left := .F.
					oNode31:ShowLinks := .F.
					oNode31:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode31:FixedWidth := 72
					oNode31:SetProperty("BackColor",0x2000000)
			oNode32 := oNodes:Add("2.2.2 Beams","Steel","Beams")
				oNode32:Width := 256
				oNode32:SetProperty("BackColor",0x3000000)
				oNode32:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode33 := oNode32:AddAssistant("<font ;6>Work:<r>1.90%<br>Budget:<r>$2,000.00")
					oNode33:Left := .F.
					oNode33:ShowLinks := .F.
					oNode33:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode33:FixedWidth := 72
					oNode33:SetProperty("BackColor",0x2000000)
			oNode34 := oNodes:Add("2.2.3 Joist","Steel","Joist")
				oNode34:SetProperty("BackColor",0x3000000)
				oNode34:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode35 := oNode34:AddAssistant("<font ;6>Work:<r>1.10%<br>Budget:<r>$2,000.00")
					oNode35:Left := .F.
					oNode35:ShowLinks := .F.
					oNode35:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode35:FixedWidth := 72
					oNode35:SetProperty("BackColor",0x2000000)
			oNode36 := oNodes:Add("3. External","Root","External")
				oNode36:ArrangeSiblingNodesAs := 2/*exTree*/
				oNode36:ShowRoundLink := .F.
				oNode36:SetProperty("BackColor",0x1ff0000)
				oNode36:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
				oNode37 := oNode36:AddAssistant("<font ;6>Work:<r>30.40%<br>Budget:<r>$83,500.00")
					oNode37:Left := .F.
					oNode37:ShowLinks := .F.
					oNode37:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode37:FixedWidth := 72
					oNode37:SetProperty("BackColor",0x2000000)
			oNode38 := oNodes:Add("3.1 Masonry Work","External","Masonry")
				oNode38:ShowRoundLink := .F.
				oNode38:SetProperty("BackColor",0x100ff00)
				oNode38:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
				oNode39 := oNode38:AddAssistant("<font ;6>Work:<r>16.20%<br>Budget:<r>$16,000.00")
					oNode39:Left := .F.
					oNode39:ShowLinks := .F.
					oNode39:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode39:FixedWidth := 72
					oNode39:SetProperty("BackColor",0x2000000)
			oNode40 := oNodes:Add("3.1.1 Lay Masonry","Masonry","LayMasonry")
				oNode40:SetProperty("BackColor",0x3000000)
				oNode40:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode41 := oNode40:AddAssistant("<font ;6>Work:<r>9.00%<br>Budget:<r>$35,000.00")
					oNode41:Left := .F.
					oNode41:ShowLinks := .F.
					oNode41:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode41:FixedWidth := 72
					oNode41:SetProperty("BackColor",0x2000000)
			oNode42 := oNodes:Add("3.1.2 Install roof drains","Masonry","RoofDrains")
				oNode42:SetProperty("BackColor",0x3000000)
				oNode42:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode43 := oNode42:AddAssistant("<font ;6>Work:<r>3.10%<br>Budget:<r>$2,000.00")
					oNode43:Left := .F.
					oNode43:ShowLinks := .F.
					oNode43:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode43:FixedWidth := 72
					oNode43:SetProperty("BackColor",0x2000000)
			oNode44 := oNodes:Add("3.1.3 Install tile in toilet rooms","Masonry","TileToiles")
				oNode44:SetProperty("BackColor",0x3000000)
				oNode44:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode45 := oNode44:AddAssistant("<font ;6>Work:<r>1.30%<br>Budget:<r>$10,000.00")
					oNode45:Left := .F.
					oNode45:ShowLinks := .F.
					oNode45:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode45:FixedWidth := 72
					oNode45:SetProperty("BackColor",0x2000000)
			oNode46 := oNodes:Add("3.1.4 Roofing","Masonry","Roofing")
				oNode46:SetProperty("BackColor",0x3000000)
				oNode46:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode47 := oNode46:AddAssistant("<font ;6>Work:<r>2.80%<br>Budget:<r>$15,000.00")
					oNode47:Left := .F.
					oNode47:ShowLinks := .F.
					oNode47:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode47:FixedWidth := 72
					oNode47:SetProperty("BackColor",0x2000000)
			oNode48 := oNodes:Add("3.2 Building Finishes","External","Building")
				oNode48:ShowRoundLink := .F.
				oNode48:SetProperty("BackColor",0x100ff00)
				oNode48:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
				oNode49 := oNode48:AddAssistant("<font ;6>Work:<r>14.20%<br>Budget:<r>$21,500.00")
					oNode49:Left := .F.
					oNode49:ShowLinks := .F.
					oNode49:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode49:FixedWidth := 72
					oNode49:SetProperty("BackColor",0x2000000)
			oNode50 := oNodes:Add("3.2.1 Paint Walls","Building","Paint")
				oNode50:SetProperty("BackColor",0x3000000)
				oNode50:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode51 := oNode50:AddAssistant("<font ;6>Work:<r>4.00%<br>Budget:<r>$8,000.00")
					oNode51:Left := .F.
					oNode51:ShowLinks := .F.
					oNode51:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode51:FixedWidth := 72
					oNode51:SetProperty("BackColor",0x2000000)
			oNode52 := oNodes:Add("3.2.2 Ceiling Tiles","Building","CeilingTiles")
				oNode52:Width := 256
				oNode52:SetProperty("BackColor",0x3000000)
				oNode52:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode53 := oNode52:AddAssistant("<font ;6>Work:<r>3.60%<br>Budget:<r>$4,000.00")
					oNode53:Left := .F.
					oNode53:ShowLinks := .F.
					oNode53:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode53:FixedWidth := 72
					oNode53:SetProperty("BackColor",0x2000000)
			oNode54 := oNodes:Add("3.2.3 Hang Wallpaper","Building","Wallpaper")
				oNode54:SetProperty("BackColor",0x3000000)
				oNode54:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode55 := oNode54:AddAssistant("<font ;6>Work:<r>2.30%<br>Budget:<r>$1,500.00")
					oNode55:Left := .F.
					oNode55:ShowLinks := .F.
					oNode55:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode55:FixedWidth := 72
					oNode55:SetProperty("BackColor",0x2000000)
			oNode56 := oNodes:Add("3.2.4 Carpet","Building","Carpet")
				oNode56:SetProperty("BackColor",0x3000000)
				oNode56:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode57 := oNode56:AddAssistant("<font ;6>Work:<r>1.80%<br>Budget:<r>$6,000.00")
					oNode57:Left := .F.
					oNode57:ShowLinks := .F.
					oNode57:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode57:FixedWidth := 72
					oNode57:SetProperty("BackColor",0x2000000)
			oNode58 := oNodes:Add("3.2.5 Hardware","Building","Hardware")
				oNode58:SetProperty("BackColor",0x3000000)
				oNode58:SetProperty("Padding",-1/*exPaddingAll*/,0)
				oNode59 := oNode58:AddAssistant("<font ;6>Work:<r>2.50%<br>Budget:<r>$2,000.00")
					oNode59:Left := .F.
					oNode59:ShowLinks := .F.
					oNode59:SetProperty("Padding",-1/*exPaddingAll*/,0)
					oNode59:FixedWidth := 72
					oNode59:SetProperty("BackColor",0x2000000)
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
196
Does your control support padding (padding properties are used to generate space around content)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oChartView:IndentSiblingY := 30
		oChartView:ShowLinksDir := .T.
		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oChartView:AntiAliasing := .T.
		oNodes := oChartView:Nodes()
			oNode := oNodes:Add("L1 A1",,"LA")
				oNode:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
				oNode:SetProperty("Padding",-1/*exPaddingAll*/,16)
			oNodes:Add("L1 B1",,"LB")
			oNodes:Add("L2 A1","LA","LA2")
			oNodes:Add("L2 B2","LB","LB2")
		oChartView:Nodes:Item("root"):Caption := "Ls As"
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
195
Does your control support padding (padding properties are used to generate space around content)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oChartView:SetProperty("DefaultNodePadding",-1/*exPaddingAll*/,8)
		oChartView:IndentSiblingY := 30
		oChartView:ShowLinksDir := .T.
		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oChartView:AntiAliasing := .T.
		oNodes := oChartView:Nodes()
			oNodes:Add("L1 A1",,"LA")
			oNodes:Add("L1 B1",,"LB")
			oNodes:Add("L2 A1","LA","LA2")
			oNodes:Add("L2 B2","LB","LB2")
		oChartView:Nodes:Item("root"):Caption := "Ls As"
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
194
How do I programmatically edit a node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Nodes():Add("Text",,"1234")
		oChartView:EditNode("1234")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
193
WidthNode does not seem to do anything. What this property is for

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:WidthNode := 16
		oChartView:IndentSiblingY := 30
		oChartView:ShowLinksDir := .T.
		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oChartView:AntiAliasing := .T.
		oNodes := oChartView:Nodes()
			oNodes:Add("L1 A1",,"LA")
			oNodes:Add("L1 B1",,"LB")
			oNodes:Add("L2 A1","LA","LA2")
			oNodes:Add("L2 B2","LB","LB2")
		oChartView:Nodes:Item("root"):Caption := "Ls As"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
192
Does your control support Print and Print-Preview, such as Fit-To-Page

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oPrint
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:FixedWidthNode := 512
		oChartView:IndentSiblingY := 30
		oChartView:ShowLinksDir := .T.
		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oChartView:AntiAliasing := .T.
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"LA"):ShowLinkDir := .F.
			oNodes:Add("L1_B",,"LB")
			oNodes:Add("L2_A","LA","LA2")
			oNodes:Add("L2_B","LB","LB2")
		oPrint := CreateObject("Exontrol.Print")
			oPrint:Options := "FitToPage = On"
			oPrint:PrintExt := oChartView
			oPrint:Preview()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
191
Does your control support Print and Print-Preview

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oPrint
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:IndentSiblingY := 30
		oChartView:ShowLinksDir := .T.
		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oChartView:AntiAliasing := .T.
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"LA"):ShowLinkDir := .F.
			oNodes:Add("L1_B",,"LB")
			oNodes:Add("L2_A","LA","LA2")
			oNodes:Add("L2_B","LB","LB2")
		oPrint := CreateObject("Exontrol.Print")
			oPrint:PrintExts := oChartView
			oPrint:Preview()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
190
Does your control support subscript or superscript, in HTML captions

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:AntiAliasing := .T.
		oNodes := oChartView:Nodes()
			oNodes:Add("<sha ;;0>Event <b><font ;6><off 4>1",,"LA"):ShowLinkDir := .F.
			oNodes:Add("<sha ;;0>Event <b><font ;6><off 4>2",,"LB")
			oNodes:Add("<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1","LA","LA2")
			oNodes:Add("Event","LB","LB2")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
189
Is it possible to move a node by a simple click rather than SHIFT + Click

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:AllowMoveChart := 0/*exDisallow*/
		oChartView:AllowMoveNode := 1/*exLeftClick*/
		oChartView:AntiAliasing := .T.
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"LA"):ShowLinkDir := .F.
			oNodes:Add("L1_B",,"LB")
			oNodes:Add("L2_A","LA","LA2")
			oNodes:Add("L2_B","LB","LB2")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
188
How can I disable moving the nodes at runtime
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:AllowMoveNode := 0/*exDisallow*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
187
How can I disable resizing the chart using the middle mouse button
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:AllowResizeChart := 0/*exDisallow*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
186
How can I disable inline editing
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:AllowEdit := 0/*exDisallow*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
185
Would like to be able to click on a node and have a pop-up window appear with additional detail and information about the individual in the node. Is this possible

PROCEDURE OnMouseUp(oChartView,Button,Shift,X,Y)
	/*Items.Add(Me.NodeFromPoint(-1,-1).Caption,0,1234)*/
	LOCAL oPopupMenu
	oPopupMenu := CreateObject("Exontrol.ExPopupMenu")
		DevOut( Transform(oPopupMenu:ShowAtCursor(),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:MouseUp := {|Button,Shift,X,Y| OnMouseUp(oChartView,Button,Shift,X,Y)} /*Occurs when the user releases a mouse button.*/

		oChartView:IndentSiblingY := 30
		oChartView:ShowLinksDir := .T.
		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oChartView:AntiAliasing := .T.
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"LA"):ShowLinkDir := .F.
			oNodes:Add("L1_B",,"LB")
			oNodes:Add("L2_A","LA","LA2")
			oNodes:Add("L2_B","LB","LB2")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
184
I am trying to create a hyperlink. I can get the link but I cannot tell the link where to go. What can I do

PROCEDURE OnAnchorClick(oChartView,AnchorID,Options)
	DevOut( Transform(Options,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:AnchorClick := {|AnchorID,Options| OnAnchorClick(oChartView,AnchorID,Options)} /*Occurs when an anchor element is clicked.*/

		oChartView:Root():Image := 0
		oNodes := oChartView:Nodes()
			oNodes:Add("<a;http://www.exontrol.com>exontrol</a>",,"1234")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
183
Is it possible to put a caption on the regular links

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:IndentSiblingY := 30
		oChartView:ShowLinksDir := .T.
		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oChartView:AntiAliasing := .T.
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"LA"):LinkCaption := "<fgcolor=FF0000><font ;6>caption<br><c><bgcolor=FFFFFF><a>link"
			oNodes:Add("L1_B",,"LB")
			oNodes:Add("L2_A","LA","LA2")
			oNodes:Add("L2_B","LB","LB2")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
182
Is it possible to hide directions for specific links

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:IndentSiblingY := 30
		oChartView:ShowLinksDir := .T.
		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oChartView:AntiAliasing := .T.
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"LA"):ShowLinkDir := .F.
			oNodes:Add("L1_B",,"LB")
			oNodes:Add("L2_A","LA","LA2")
			oNodes:Add("L2_B","LB","LB2")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
181
Does your control supports multiple lines tooltip

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:SetProperty("HTMLPicture","pic1","c:\exontrol\images\zipdisk.gif")
		oChartView:ToolTipDelay := 1
		oChartView:Root():ToolTip := "<br><font Tahoma;10>This</font> is a <b>multi-lines</b> tooltip assigned to a column. The tooltip supports built-in HTML tags, icons and pictures.<br><br><br><img>pic1</img> picture ... <br><br>"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
180
Can I change the border's node, using your EBN technology, including specifying a color

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode,oNode1
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:VisualAppearance():Add(1,"c:\exontrol\images\hot.ebn")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNode := oNodes:Add("Sub 1","1234")
				oNode:Caption := "This is a bit of long text that should break the line.<br>-using no color"
				oNode:SetProperty("BackColor",0x1000000)
			oNode1 := oNodes:Add("Sub 2","1234")
				oNode1:Caption := "This is a bit of long text that should break the line.<br>-using a color"
				oNode1:SetProperty("BackColor",0x100ff00)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
179
Can the chart be arranged from the left to right (LTR)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oChartView:Layout := 1/*exLayoutLTR*/
		oChartView:ShowLinksDir := .T.
		oChartView:IndentSiblingX := 32
		oNodes := oChartView:Nodes()
			oNodes:Add("Child1",,"1234")
			oNodes:Add("Child2",,"1235")
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234"):Caption := "This is a bit of long text that should break the line."
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
178
Is there any property to keep the aspect ratio for all pictures, but still keep the size of nodes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode,oNode1,oNode2
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oChartView:PictureHeightNode := 48
		oChartView:PictureAspectRatioNode := 2/*exAspectRatioHeight*/
		oChartView:FixedWidthNode := 82
		oNodes := oChartView:Nodes()
			oNode := oNodes:Add("PNG <b>1",,"0")
				oNode:Picture := "c:\exontrol\images\card.png"
				oNode:Alignment := 1/*CenterAlignment*/
			oNode1 := oNodes:Add("PNG <b>2",,"1")
				oNode1:Picture := "c:\exontrol\images\diary.png"
				oNode1:Alignment := 1/*CenterAlignment*/
			oNode2 := oNodes:Add("PNG <b>3",,"2")
				oNode2:Picture := "c:\exontrol\images\sun.png"
				oNode2:Alignment := 1/*CenterAlignment*/
		oChartView:Root():Alignment := 1/*CenterAlignment*/
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
177
Is there any property to keep the aspect ratio for all pictures

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode,oNode1,oNode2
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oChartView:PictureHeightNode := 48
		oChartView:PictureAspectRatioNode := 2/*exAspectRatioHeight*/
		oNodes := oChartView:Nodes()
			oNode := oNodes:Add("PNG <b>1",,"0")
				oNode:Picture := "c:\exontrol\images\card.png"
			oNode1 := oNodes:Add("PNG <b>2",,"1")
				oNode1:Picture := "c:\exontrol\images\diary.png"
			oNode2 := oNodes:Add("PNG <b>3",,"2")
				oNode2:Picture := "c:\exontrol\images\sun.png"
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
176
Is there any property to keep the aspect ratio for all pictures

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode,oNode1,oNode2
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oChartView:PictureWidthNode := 48
		oChartView:PictureAspectRatioNode := 1/*exAspectRatioWidth*/
		oNodes := oChartView:Nodes()
			oNode := oNodes:Add("PNG <b>1",,"0")
				oNode:Picture := "c:\exontrol\images\card.png"
			oNode1 := oNodes:Add("PNG <b>2",,"1")
				oNode1:Picture := "c:\exontrol\images\diary.png"
			oNode2 := oNodes:Add("PNG <b>3",,"2")
				oNode2:Picture := "c:\exontrol\images\sun.png"
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
175
Is there any property to keep the aspect ratio for displayed picture

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode,oNode1,oNode2
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oNodes := oChartView:Nodes()
			oNode := oNodes:Add("Ratio/None",,"0")
				oNode:Picture := "c:\exontrol\images\card.png"
				oNode:PictureWidth := 48
				oNode:PictureHeight := 48
			oNode1 := oNodes:Add("Ratio/Width",,"1")
				oNode1:Picture := "c:\exontrol\images\card.png"
				oNode1:PictureWidth := 48
				oNode1:PictureAspectRatio := 1/*exAspectRatioWidth*/
			oNode2 := oNodes:Add("Ratio/Height",,"2")
				oNode2:Picture := "c:\exontrol\images\card.png"
				oNode2:PictureHeight := 48
				oNode2:PictureAspectRatio := 2/*exAspectRatioHeight*/
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
174
Is is possible to show the round an arbitrary link

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:AntiAliasing := .T.
		oChartView:ShowLinksDir := .F.
		oChartView:PenWidthLink := 1
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"LA"):LinkTo := "LB"
			oNodes:Add("L1_B<br><br>Cust",,"LB")
			oNode := oNodes:Add("L2_A","LA","LA2")
				oNode:LinkTo := "LB,LB22"
				oNode:SetProperty("LinkToColor","LB",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
				oNode:SetProperty("LinkToWidth","LB",2)
				oNode:SetProperty("LinkToPen","LB",2/*exPenDot*/)
				oNode:SetProperty("LinkToShowDir","LB",.T.)
				oNode:SetProperty("LinkToRound","LB",.T.)
				oNode:SetProperty("LinkToRound","LB22",.T.)
				oNode:SetProperty("LinkToShowDir","LB22",.T.)
				oNode:SetProperty("LinkToColor","LB22",AutomationTranslateColor( GraMakeRGBColor  ( { 128,0,0 } )  , .F. ))
				oNode:SetProperty("LinkToWidth","LB22",2)
			oNodes:Add("L2_B1","LB","LB21")
			oNodes:Add("L2_B2","LB","LB22")
			oNodes:Add("L2_B3","LB","LB23")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
173
Is is possible to show the round an arbitrary link

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:AntiAliasing := .T.
		oChartView:ShowLinksDir := .F.
		oChartView:PenWidthLink := 1
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"LA"):LinkTo := "LB"
			oNodes:Add("L1_B<br><br>Cust",,"LB")
			oNode := oNodes:Add("L2_A","LA","LA2")
				oNode:LinkTo := "LB"
				oNode:SetProperty("LinkToColor","LB",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
				oNode:SetProperty("LinkToWidth","LB",2)
				oNode:SetProperty("LinkToPen","LB",2/*exPenDot*/)
				oNode:SetProperty("LinkToShowDir","LB",.T.)
				oNode:SetProperty("LinkToRound","LB",.T.)
			oNodes:Add("L2_B1","LB","LB21")
			oNodes:Add("L2_B2","LB","LB22")
			oNodes:Add("L2_B3","LB","LB23")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
172
Is is possible to show the direction for a linktoline, even if the ShowLinksDir is False

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:ShowLinksDir := .F.
		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oChartView:AntiAliasing := .T.
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"LA"):LinkTo := "LB"
			oNode := oNodes:Add("L1_B<br><br>Cust",,"LB")
				oNode:LinkTo := "LA2"
				oNode:SetProperty("LinkToColor","LA2",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
				oNode:SetProperty("LinkToWidth","LA2",2)
				oNode:SetProperty("LinkToPen","LA2",3/*exPenDashDot*/)
				oNode:SetProperty("LinkToShowDir","LA2",.T.)
			oNodes:Add("L2_A","LA","LA2")
			oNodes:Add("L2_B1","LB","LB21")
			oNodes:Add("L2_B2","LB","LB22")
			oNodes:Add("L2_B3","LB","LB23")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
171
Is is possible to change the width for a specified linkto line

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oChartView:AntiAliasing := .T.
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"LA"):LinkTo := "LB"
			oNode := oNodes:Add("L1_B<br><br>Cust",,"LB")
				oNode:LinkTo := "LA2"
				oNode:SetProperty("LinkToColor","LA2",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
				oNode:SetProperty("LinkToWidth","LA2",4)
				oNode:SetProperty("LinkToPen","LA2",0/*exPenSolid*/)
				oNode:SetProperty("LinkToCaption","LA2","L2A-L1B")
			oNodes:Add("L2_A","LA","LA2")
			oNodes:Add("L2_B1","LB","LB21")
			oNodes:Add("L2_B2","LB","LB22")
			oNodes:Add("L2_B3","LB","LB23")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
170
Is is possible to change the width for a specified linkto line

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"LA"):LinkTo := "LB"
			oNode := oNodes:Add("L1_B<br><br>Cust",,"LB")
				oNode:LinkTo := "LA2"
				oNode:SetProperty("LinkToColor","LA2",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
				oNode:SetProperty("LinkToWidth","LA2",2)
			oNodes:Add("L2_A","LA","LA2")
			oNodes:Add("L2_B1","LB","LB21")
			oNodes:Add("L2_B2","LB","LB22")
			oNodes:Add("L2_B3","LB","LB23")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
169
Is is possible to change the color for a specified linkto line

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"LA"):LinkTo := "LB"
			oNode := oNodes:Add("L1_B<br><br>Cust",,"LB")
				oNode:LinkTo := "LA2"
				oNode:SetProperty("LinkToColor","LA2",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
				oNode:SetProperty("LinkToWidth","LA2",2)
			oNodes:Add("L2_A","LA","LA2")
			oNodes:Add("L2_B1","LB","LB21")
			oNodes:Add("L2_B2","LB","LB22")
			oNodes:Add("L2_B3","LB","LB23")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
168
How can I specify the size for a picture being shown in a specified node only

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNodes := oChartView:Nodes()
			oNode := oNodes:Add("Child 1",,"1")
				oNode:Picture := "c:\exontrol\images\zipdisk.gif"
				oNode:PictureWidth := 64
				oNode:PictureHeight := 64
			oNodes:Add("Child 2",,"2"):Picture := "c:\exontrol\images\auction.gif"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
167
How can I resize the pictures being shown in the nodes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:PictureHeightNode := 24
		oChartView:PictureWidthNode := 24
		oNodes := oChartView:Nodes()
			oNodes:Add("Child 1",,"1"):Picture := "c:\exontrol\images\zipdisk.gif"
			oNodes:Add("Child 2",,"2"):Picture := "c:\exontrol\images\auction.gif"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
166
Can I change the width of the node's border

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNodes := oChartView:Nodes()
			oNode := oNodes:Add("Child 1",,"1")
				oNode:BorderWidth := 3
				oNode:DrawRoundNode := .F.
			oNodes:Add("Child 2",,"2")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
165
Can I change the visual appearance of the node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child 1",,"1"):SetProperty("BackColor",0x1000000)
			oNodes:Add("Child 2",,"2")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
164
Can I specify a different color for node's border

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNodes := oChartView:Nodes()
			oNodes:Add("Child 1",,"1"):SetProperty("BorderColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oNodes:Add("Child 2",,"2")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
163
Can I display my image on my links

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:SetProperty("HTMLPicture","pic1","c:\exontrol\images\colorize.gif")
		oChartView:AntiAliasing := .T.
		oChartView:IndentSiblingY := 30
		oChartView:IndentSiblingX := 60
		oChartView:ShowLinksDir := .T.
		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"LA")
			oNode := oNodes:Add("L1_B",,"LB")
				oNode:LinkTo := "LA2"
				oNode:SetProperty("LinkToCaption","LA2","<img>pic1</img> text")
			oNodes:Add("L2_A","LA","LA2")
			oNodes:Add("L2_B","LB","LB2")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
162
How can I show a caption on my link

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:AntiAliasing := .T.
		oChartView:IndentSiblingY := 30
		oChartView:ShowLinksDir := .T.
		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"LA")
			oNode := oNodes:Add("L1_B",,"LB")
				oNode:LinkTo := "LA2"
				oNode:SetProperty("LinkToCaption","LA2","text")
			oNodes:Add("L2_A","LA","LA2")
			oNodes:Add("L2_B","LB","LB2")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
161
How can I show smootly the arrows

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:AntiAliasing := .T.
		oChartView:IndentSiblingY := 30
		oChartView:ShowLinksDir := .T.
		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"LA")
			oNodes:Add("L1_B",,"LB"):LinkTo := "LA2"
			oNodes:Add("L2_A","LA","LA2"):LinkTo := "LB"
			oNodes:Add("L2_B","LB","LB2")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
160
How can I show direction on my links

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:IndentSiblingY := 30
		oChartView:ShowLinksDir := .T.
		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oChartView:AntiAliasing := .T.
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"LA")
			oNodes:Add("L1_B",,"LB"):LinkTo := "LA2"
			oNodes:Add("L2_A","LA","LA2"):LinkTo := "LB"
			oNodes:Add("L2_B","LB","LB2")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
159
How can I add a doubled direction link

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"LA")
			oNodes:Add("L1_B",,"LB"):LinkTo := "LA2"
			oNodes:Add("L2_A","LA","LA2"):LinkTo := "LB"
			oNodes:Add("L2_B","LB","LB2")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
158
How can I add arbitrary links

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"LA")
			oNodes:Add("L1_B",,"LB"):LinkTo := "LA2"
			oNodes:Add("L2_A","LA","LA2")
			oNodes:Add("L2_B","LB","LB2")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
157
How can I add multiple parents

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:PenWidthLink := 2
		oChartView:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oNodes := oChartView:Nodes()
			oNodes:Add("L1_A",,"L1"):AddGroup("L1_B")
			oNodes:Add("L_A","L1")
			oNodes:Add("L_B","L1")
			oNodes:Add("L_C","L1")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
156
How can I add multiple parents or roots

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode,oNode1,oNode2
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oChartView:HasButtons := 3/*exWPlus*/
		oChartView:ButtonsAlign := 1/*UpperCenter*/
		oChartView:PenWidthLink := 3
		oChartView:IndentChild := 32
		oNode := oChartView:Root()
			oNode:HasButton := .F.
			oNode:Caption := "<r><dotline><b>Root 1</b><br>Some information <a info>here</a>.<br><upline><dotline>Line 1:<r><fgcolor=0000FF><b>1</b></fgcolor><br><upline><dotline>Line 2:<r>2<br><upline><dotline>Line 3:<r>3"
			oNode:Image := 0
			oNode:AddGroup("<r><dotline><b>Root 2</b><br>Some information <a info>here</a>.<br><upline><dotline>Line 1:<r><fgcolor=0000FF><b>1</b></fgcolor><br><upline><dotline>Line 2:<r>2<br><upline><dotline>Line 3:<r>3")
			oNode:AddGroup("<r><dotline><b>Root 3</b><br>Some information <a info>here</a>.<br><upline><dotline>Line 1:<r><fgcolor=0000FF><b>1</b></fgcolor><br><upline><dotline>Line 2:<r>2<br><upline><dotline>Line 3:<r>3")
			oNode:AddAssistant("<b>Assistant</b> <a1>node 1</a>"):Key := "A"
			oNode1 := oNode:AddAssistant("<b>Assistant</b> <a2>node 2</a>")
				oNode1:Left := .T.
				oNode1:ShowLinks := .F.
				oNode1:LinkTo := "A"
		oNodes := oChartView:Nodes()
			oNode2 := oNodes:Add("Parent <b>1</b>",,"Key1")
				oNode2:HasButton := .F.
				oNode2:ArrangeSiblingNodesAs := 2/*exTree*/
				oNode2:ShowRoundLink := .T.
				oNode2:AddGroup("Parent <b>2</b>")
				oNode2:AddGroup("Parent <b>3</b>")
			oNodes:Add("SubItem 1","Key1","S1"):HasButton := .F.
			oNodes:Add("SubItem 1.1","S1","S111")
			oNodes:Add("SubItem 1.2","S1","S112")
			oNodes:Add("SubItem 2","Key1")
			oNodes:Add("Item 2",,"Key2"):Expanded := .F.
			oNodes:Add("SubItem 1","Key2")
			oNodes:Add("SubItem 2","Key2")
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
155
How can I align the text/caption on the scroll bar

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:SetProperty("ScrollPartCaption",1/*exHScroll*/,512/*exLowerBackPart*/,"left")
		oChartView:SetProperty("ScrollPartCaptionAlignment",1/*exHScroll*/,512/*exLowerBackPart*/,0/*LeftAlignment*/)
		oChartView:SetProperty("ScrollPartCaption",1/*exHScroll*/,128/*exUpperBackPart*/,"right")
		oChartView:SetProperty("ScrollPartCaptionAlignment",1/*exHScroll*/,128/*exUpperBackPart*/,2/*RightAlignment*/)
		oChartView:FixedWidthNode := 320

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
154
How can I show round links

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:ShowRoundLink := .T.
		oChartView:Root():Image := 0
		oChartView:IndentSiblingX := 32
		oChartView:IndentSiblingY := 64
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234"):ArrangeSiblingNodesAs := 1/*exHorizontally*/
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2</b>")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
153
How do I access a node by its key

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNodes := oChartView:Nodes()
			oNodes:Add("Child 1",,"C1")
			oNodes:Add("Sub Child 1","C1","SC1")
			oNodes:Add("Sub Sub Shild 1","SC1")
		oChartView:Nodes():Item("SC1"):SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
152
How can I get the number of nodes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:HasButtons := -1/*exPlus*/
		oChartView:Root():ArrangeSiblingNodesAs := 2/*exTree*/
		oNodes := oChartView:Nodes()
			oNodes:Add("Child 1",,"C1")
			oNodes:Add("Sub Child 1","C1","SC1")
			oNodes:Add("Sub Sub Shild 1","SC1")
			oNodes:Remove(3)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
151
How can I remove all nodes in the chart
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Nodes():Clear()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
150
How can I clear the chart
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Nodes():Clear()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
149
How can I get the number of nodes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:HasButtons := -1/*exPlus*/
		oChartView:Root():ArrangeSiblingNodesAs := 2/*exTree*/
		oNodes := oChartView:Nodes()
			oNodes:Add("Child 1",,"C1")
			oNodes:Add("Sub Child 1","C1","SC1")
			oNodes:Add("Sub Sub Shild 1","SC1")
			oNodes:Add(Transform(oNodes:Count(),""))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
148
How can I add a child node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:HasButtons := -1/*exPlus*/
		oChartView:Root():ArrangeSiblingNodesAs := 2/*exTree*/
		oNodes := oChartView:Nodes()
			oNodes:Add("Child 1",,"C1")
			oNodes:Add("Sub Child 1","C1","SC1")
			oNodes:Add("Sub Sub Shild 1","SC1")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
147
How can I add a child node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:HasButtons := -1/*exPlus*/
		oNodes := oChartView:Nodes()
			oNodes:Add("Child 1",,"C1")
			oNodes:Add("Child 2",,"C2")
			oNodes:Add("Sub Child 1","C1","SC1")
			oNodes:Add("Sub Sub Shild 1","SC1")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
146
How can I draw link or a line between my own nodes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode,oNode1
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:HasButtons := -1/*exPlus*/
		oChartView:PenLink := 0/*exPenSolid*/
		oChartView:PenWidthLink := 3
		oNode := oChartView:Root()
			oNode:Image := 0
			oNode:AddAssistant("Assistant 1")
			oNode:AddAssistant("Assistant 2")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234")
			oNode1 := oNodes:Add("Sub 2","1234")
				oNode1:LinkTo := "AA"
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2</b>",,"AA")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
145
How can I show or hide the link or a line between nodes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:HasButtons := -1/*exPlus*/
		oNode := oChartView:Root()
			oNode:Image := 0
			oNode:AddAssistant("Assistant 1")
			oNode:AddAssistant("Assistant 2")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234"):ShowLinks := .F.
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2</b>")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
144
How can I hide or show the +/- expand/collapse buttons for a specified node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:HasButtons := -1/*exPlus*/
		oNode := oChartView:Root()
			oNode:Image := 0
			oNode:AddAssistant("Assistant 1")
			oNode:AddAssistant("Assistant 2")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234"):HasButton := .F.
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2</b>")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
143
How can I expand or collapse a node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:HasButtons := -1/*exPlus*/
		oNode := oChartView:Root()
			oNode:Image := 0
			oNode:AddAssistant("Assistant 1")
			oNode:AddAssistant("Assistant 2")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234"):Expanded := .F.
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2</b>")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
142
How can I assign an icon to the root node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oChartView:Root():Image := 1

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
141
How can I access an assistant nodes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oChartView:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oNode := oChartView:Root()
			oNode:Image := 0
			oNode:AddAssistant("Assistant 1")
			oNode:AddAssistant("Assistant 2")
			oNode:Assistant(0):Image := 1
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2</b>")
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
140
How can I get the number or count of assistant nodes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oNode := oChartView:Root()
			oNode:Image := 0
			oNode:AddAssistant("Assistant 1")
			oNode:AddAssistant("Assistant 2")
			oNode:AddAssistant(Transform(oNode:CountAssistants(),""))
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2</b>")
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
139
How can I display assistant nodes on the right side only

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oNode := oChartView:Root()
			oNode:Image := 0
			oNode:AddAssistant("Assistant 1"):Left := .F.
			oNode:AddAssistant("Assistant 2"):Left := .F.
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2</b>")
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
138
How can I display assistant nodes on the left side only

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oNode := oChartView:Root()
			oNode:Image := 0
			oNode:AddAssistant("Assistant 1"):Left := .T.
			oNode:AddAssistant("Assistant 2"):Left := .T.
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2</b>")
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
137
How can I clear or remove all assistant nodes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oNode := oChartView:Root()
			oNode:Image := 0
			oNode:AddAssistant("Assistant 1")
			oNode:AddAssistant("Assistant 2")
			oNode:ClearAssistants()
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2</b>")
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
136
How can I remove an assistant node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNode := oChartView:Root()
			oNode:Image := 0
			oNode:AddAssistant("Assistant 1")
			oNode:AddAssistant("Assistant 2")
			oNode:RemoveAssistant(0)
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2</b>")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
135
How can I add assistant node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNode := oChartView:Root()
			oNode:Image := 0
			oNode:AddAssistant("Assistant 1")
			oNode:AddAssistant("Assistant 2")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child <b>2</b>")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
134
Can I change the border's node, using your EBN technology

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:VisualAppearance():Add(1,"c:\exontrol\images\hot.ebn")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNodes:Add("Sub 1","1234")
			oNode := oNodes:Add("Sub 2","1234")
				oNode:Caption := "This is a bit of long text that should break the line."
				oNode:SetProperty("BackColor",0x1000000)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
133
Can I remove the shadow for a specified node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNodes:Add("Sub 1","1234")
			oNode := oNodes:Add("Sub 2","1234")
				oNode:Caption := "This is a bit of long text that should break the line."
				oNode:ShadowNode := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
132
Can I change the border for a specified node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNodes:Add("Sub 1","1234")
			oNode := oNodes:Add("Sub 2","1234")
				oNode:Caption := "This is a bit of long text that should break the line."
				oNode:PenBorderNode := 4/*exPenDashDotDot*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
131
Can I remove the round corner for a specified node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNodes:Add("Sub 1","1234")
			oNode := oNodes:Add("Sub 2","1234")
				oNode:Caption := "This is a bit of long text that should break the line."
				oNode:DrawRoundNode := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
130
How can I disable or enable a node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNodes:Add("Sub 1","1234")
			oNode := oNodes:Add("Sub 2","1234")
				oNode:Caption := "This is a bit of long text that should break the line."
				oNode:Enabled := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
129
How can I specify the height of the node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNodes:Add("Sub 1","1234")
			oNode := oNodes:Add("Sub 2","1234")
				oNode:Caption := "This is a bit of long text that should break the line."
				oNode:FixedHeight := 128

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
128
How can I specify the width of the node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNodes:Add("Sub 1","1234")
			oNode := oNodes:Add("Sub 2","1234")
				oNode:Caption := "This is a bit of long text that should break the line."
				oNode:FixedWidth := 128

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
127
How can I specify the width of the node to wrap it's content

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNodes:Add("Sub 1","1234")
			oNode := oNodes:Add("Sub 2","1234")
				oNode:Caption := "This is a bit of long text that should break the line."
				oNode:Width := 128

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
126
How can I change the position of the node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234"):Position := 0

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
125
How can I count or get the number of child nodes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add(oNodes:Item("1234"):NodeCount())

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
124
How can I enumerate the child nodes

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNodes

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNodes := oChartView:Nodes()
			oNodes:Add("Child",,"1234")
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add(oNodes:Item("1234"):FirstNode():Caption())
			oNodes:Add(oNodes:Item("1234"):FirstNode():NextNode():Caption())

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
123
How can I change the node's parent

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:BeginUpdate()
		oChartView:Nodes():Add("Child 1",,"1234")
		oChartView:Nodes():Add("Sub 1","1234")
		oChartView:Nodes():Add("Sub 2","1234")
		oChartView:Nodes():Add("Child 2",,"1235")
		oChartView:Nodes():Add("Sub 1","1235")
		oChartView:Nodes():Add("To Move","1235","Move")
		oNode := oChartView:Nodes:Item("Move")
			oNode:Parent := oChartView:Root()
			oNode:Caption := "Moved 2 Root from Child 2"
		oChartView:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
122
How can I assign a key to a node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Nodes():Add("Child",,"1234")
		oChartView:Nodes():Add("Sub 1","1234")
		oChartView:Nodes():Add("Sub 2","1234")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
121
How can I assign a key to a node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Nodes():Add("Child"):Key := "1234"
		oChartView:Nodes():Add("Sub 1","1234")
		oChartView:Nodes():Add("Sub 2","1234")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
120
How can I change the node's background color

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNode := oChartView:Nodes():Add("Child")
			oNode:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oNode:ClearBackColor()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
119
How can I change the node's background color

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Nodes():Add("Child"):SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
118
How can I change the node's foreground color

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNode := oChartView:Nodes():Add("Child")
			oNode:SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oNode:ClearForeColor()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
117
How can I change the node's foreground color

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Nodes():Add("Child"):SetProperty("ForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
116
How can I assign a tooltip to a node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNode := oChartView:Nodes():Add("ToolTip")
			oNode:ToolTip := "This is a bit of text that's shown when the cursor hovers this <b>node</b>."
			oNode:ToolTipTitle := "TITLE"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
115
How can I assign a different font for the node's tooltip

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Nodes():Add("ToolTip"):ToolTip := "<font Tahoma;12>This is a bit of text that's shown when the cursor hovers this <b>node</b>.</font>"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
114
How can I assign a tooltip to a node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Nodes():Add("ToolTip"):ToolTip := "This is a bit of text that's shown when the cursor hovers this <b>node</b>."

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
113
How can I assign any extra data to my node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Nodes():Add("Child"):UserData := "your data"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
112
How can I assign an icon and a picture to a node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oNode := oChartView:Nodes():Add("Child")
			oNode:Image := 1
			oNode:Picture := oChartView:ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")
			oNode:PictureAlignment := 3/*exImageBottom*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
111
How can I align the picture in the node
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNode := oChartView:Nodes():Add("Child")
			oNode:Picture := oChartView:ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")
			oNode:PictureAlignment := 3/*exImageBottom*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
110
How can I align the picture in the node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNode := oChartView:Nodes():Add("Child")
			oNode:Picture := oChartView:ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")
			oNode:PictureAlignment := 2/*exImageTop*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
109
How can I align the picture in the node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oNode := oChartView:Nodes():Add("Child")
			oNode:Picture := oChartView:ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")
			oNode:PictureAlignment := 1/*exImageRight*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
108
How can I assign a picture to a node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Nodes():Add("Child"):Picture := oChartView:ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
107
How can I align the icon in the node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oNode := oChartView:Nodes():Add("Just a node with an icon")
			oNode:Image := 1
			oNode:ImageAlignment := 1/*exImageRight*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
106
How can I align the icon in the node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oNode := oChartView:Nodes():Add("Just a node with an icon")
			oNode:Image := 1
			oNode:ImageAlignment := 3/*exImageBottom*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
105
How can I align the icon in the node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView
	LOCAL oNode

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oNode := oChartView:Nodes():Add("Just a node with an icon")
			oNode:Image := 1
			oNode:ImageAlignment := 2/*exImageTop*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
104
How can I assign an icon to a node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oChartView:Nodes():Add("Child"):Image := 1

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
103
How can I change the font for a node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Nodes():Add("Child"):Caption := "<font Tahoma;12>new</font> caption"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
102
How can I add a multiple lines node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Nodes():Add(""):Caption := "Line 1<br>Line 2<br>Line3"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
101
How can I add a multiple lines node

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oChartView

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oChartView := XbpActiveXControl():new( oForm:drawingArea )
	oChartView:CLSID  := "Exontrol.ChartView.1" /*{F4DFE455-01FE-420E-A088-64346DCC3791}*/
	oChartView:create(,, {10,60},{610,370} )

		oChartView:Nodes():Add("Line 1<br>Line 2<br>Line3")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN