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
100:
How can I change the background color for parts of the text

#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 := "<bgcolor=FF0000>new</bgcolor> caption"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
99:
How can I change the foreground color for parts of the text

#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 := "<fgcolor=FF0000>new</fgcolor> caption"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
98:
How can I show the node as strikeout

#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 := "<s>new</s> caption"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
97:
How can I show the node as underlined

#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 := "<u>new</u> caption"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
96:
How can I show the node as italic

#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 := "<i>new</i> caption"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
95:
How can I bold the 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 := "<b>new</b> caption"

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

#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 := "new caption"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
93:
How can I display hierarchical the child nodes so they are indented relative to their 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:HasButtons := -1/*exPlus*/
		oChartView:PenLink := 0/*exPenSolid*/
		oChartView:PenWidthLink := 3
		oChartView:IndentSiblingX := 12
		oChartView:IndentSiblingY := 12
		oChartView:Root():Image := 0
		oNodes := oChartView:Nodes()
			oNodes:Add("As <b>Tree</b>",,"1234"):ArrangeSiblingNodesAs := 2/*exTree*/
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234","456")
			oNodes:Add("Item 1","456")
			oNodes:Add("Item 2","456","78"):Expanded := .F.
			oNodes:Add("Item 2.1","78")
			oNodes:Add("Item 2.2","78")
			oNodes:Add("Item 3","456")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("As <b>Default</b>",,"AA")
			oNodes:Add("Item 1","AA")
			oNodes:Add("Item 2","AA","BB")
			oNodes:Add("Item 2.1","BB")
			oNodes:Add("Item 2.2","BB")
			oNodes:Add("Item 2.3","BB")
			oNodes:Add("Item 3","AA")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
92:
How can I display the child nodes as a tree, so they are indented relative to their parents

#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:IndentSiblingY := 4
		oChartView:HasButtons := -1/*exPlus*/
		oNode := oChartView:Root()
			oNode:Image := 0
			oNode:ArrangeSiblingNodesAs := 2/*exTree*/
		oNodes := oChartView:Nodes()
			oNodes:Add("Child 1",,"1234")
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234","456")
			oNodes:Add("Item 1","456")
			oNodes:Add("Item 2","456","78"):Expanded := .F.
			oNodes:Add("Item 2.1","78")
			oNodes:Add("Item 2.2","78")
			oNodes:Add("Item 3","456")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child 2")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
91:
How can I indent the child nodes relative to their 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:IndentChild := 32
		oChartView:HasButtons := -1/*exPlus*/
		oChartView:Root():Image := 0
		oNodes := oChartView:Nodes()
			oNodes:Add("AsTree",,"1234"):ArrangeSiblingNodesAs := 2/*exTree*/
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234","456")
			oNodes:Add("Item 1","456")
			oNodes:Add("Item 2","456","78"):Expanded := .F.
			oNodes:Add("Item 2.1","78")
			oNodes:Add("Item 2.2","78")
			oNodes:Add("Item 3","456")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("Child 2",,"AA")
			oNodes:Add(Transform(1,""),"AA")
			oNodes:Add(Transform(2,""),"AA","BB")
			oNodes:Add("2.1","BB")
			oNodes:Add("2.2","BB")
			oNodes:Add(Transform(3,""),"AA")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
90:
How can I increase the distance between 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:IndentSiblingY := 64
		oChartView:Root():Image := 0
		oNodes := oChartView:Nodes()
			oNodes:Add("<a1>Link 1</a>",,"1234")
			oNodes:Add("Sub <a1>Link 1</a>","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("<a2>Link 2</a>")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
89:
How can I increase the distance between 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:IndentSiblingX := 64
		oChartView:Root():Image := 0
		oNodes := oChartView:Nodes()
			oNodes:Add("<a1>Link 1</a>",,"1234")
			oNodes:Add("Sub <a1>Link 1</a>","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("<a2>Link 2</a>")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
88:
How can I add an anchor or a hyperlink

#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:Root():Image := 0
		oNodes := oChartView:Nodes()
			oNodes:Add("<a1>Link 1</a>",,"1234")
			oNodes:Add("Sub <a1>Link 1</a>","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("<a2>Link 2</a>")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
87:
Can I change the visual effect, appearance for the anchor, hyperlink elements, in HTML captions, after the user clicks it

#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:SetProperty("FormatAnchor",.F.,"<u><fgcolor=880000> </fgcolor></u>")
		oChartView:Root():Image := 0
		oNodes := oChartView:Nodes()
			oNodes:Add("<a1>Link 1</a>",,"1234")
			oNodes:Add("Sub <a1>Link 1</a>","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("<a2>Link 2</a>")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
86:
Can I change the visual effect, appearance for the anchor, hyperlink elements, 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:SetProperty("FormatAnchor",.T.,"<u><fgcolor=FF0000> </fgcolor></u>")
		oChartView:Root():Image := 0
		oNodes := oChartView:Nodes()
			oNodes:Add("<a1>Link 1</a>",,"1234")
			oNodes:Add("Sub <a1>Link 1</a>","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add("Sub 3","1234")
			oNodes:Add("<a2>Link 2</a>")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
85:
How can I save data in XML format
#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} )


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
84:
Can I load data from XML files
#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} )


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
83:
How can I assign multiple icons 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
	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:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oChartView:SetProperty("HTMLPicture","pic1","c:\exontrol\images\zipdisk.gif")
		oChartView:Root():Image := 0
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234"):Caption := "<img>1</img> text <img>2</img> and so on<br>bla <b>bla</b> left<r><img>3</img>"
			oNode := oNodes:Add("Sub 2","1234")
				oNode:Caption := "<img>pic1</img> text <img>1:6</img><img>1:6</img><img>1</img> <img>2</img>"
				oNode:FixedWidth := 124
				oNode:FixedHeight := 48
			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
82:
How can I assign multiple pictures 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,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:SetProperty("HTMLPicture","pic1","c:\exontrol\images\zipdisk.gif")
		oChartView:SetProperty("HTMLPicture","pic2","c:\exontrol\images\auction.gif")
		oNode := oChartView:Root()
			oNode:Image := 0
			oNode:AddAssistant("Assistant 1")
			oNode:AddAssistant("Assistant 2")
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNode1 := oNodes:Add("Sub 1","1234")
				oNode1:Caption := "<img>pic1</img> text <img>pic2</img>"
				oNode1:FixedWidth := 108
				oNode1:FixedHeight := 48
			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
81:
How can I change the color of the line that links 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:SetProperty("LinkAssistantColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		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
80:
How can I change the width of the line that links 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:PenLinkAssistant := 0/*exPenSolid*/
		oChartView:PenWidthLinkAssistant := 4
		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
79:
How can I change the style of the line that links 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:PenLinkAssistant := 4/*exPenDashDotDot*/
		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
78:
How can I change the shape of the cursor when it hovers the +/- or expand/collapse buttons

#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("Cursor",3/*exExpandButtonArea*/,"exHelp")
		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
77:
How do I change the shape of the cursor when the user clicks an drags the chart

#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("Cursor",2/*exDragChart*/,"exHelp")
		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
76:
How do I change the shape of the cursor when it hovers 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:SetProperty("Cursor",1/*exNodeArea*/,"exHelp")
		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
75:
How do I change the shape of the cursor when it hovers the chart

#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("Cursor",0/*exChartArea*/,"exHelp")
		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
74:
How can I copy and paste the control's content to Microsoft Word for instance

#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*/
		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"):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
73:
How can I copy and paste the control's content to Microsoft Word for instance

#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*/
		oChartView:ButtonsAlign := 18/*MiddleRight*/
		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
72:
How can I enable or disable expanding or collapsing a node when user double clicks it

#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:ExpandOnDblClk := .F.
		oChartView:HasButtons := -1/*exPlus*/
		oChartView:ButtonsAlign := 18/*MiddleRight*/
		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
71:
How can I align the +/- expand or collapse buttons to the right

#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*/
		oChartView:ButtonsAlign := 18/*MiddleRight*/
		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
70:
Can I display the +/- expand or collapse buttons using your EBN files

#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} )

		oAppearance := oChartView:VisualAppearance()
			oAppearance:Add(11,"c:\exontrol\images\normal.ebn")
			oAppearance:Add(22,"c:\exontrol\images\pushed.ebn")
			oAppearance:Add(1,"CP:11 2 2 -2 -2")
			oAppearance:Add(2,"CP:22 2 2 -2 -2")
		oChartView:HasButtons := 4/*exCustom*/
		oChartView:SetProperty("HasButtonsCustom",.T.,33554432)
		oChartView:SetProperty("HasButtonsCustom",.F.,16777216)
		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
69:
How can I change the +/- expand or collapse buttons

#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:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oChartView:HasButtons := 4/*exCustom*/
		oChartView:SetProperty("HasButtonsCustom",.T.,1)
		oChartView:SetProperty("HasButtonsCustom",.F.,2)
		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
68:
How can I change the +/- expand or collapse buttons

#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 := 2/*exCircle*/
		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
67:
How can I display +/- expand or collapse buttons

#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
66:
How do I show or hide the 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:ShowAssistants := .T.
		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
65:
How do I scale or zoom the chart

#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:BorderWidth := 18
		oChartView:BorderHeight := 18
		oChartView:ZoomWidthMode := 1/*exCustomSize*/
		oChartView:ZoomHeightMode := 1/*exCustomSize*/
		oChartView:ZoomWidth := 2
		oChartView:ZoomHeight := 2
		oChartView:Root():Image := 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
64:
How do I scale or zoom the chart

#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:BorderWidth := 18
		oChartView:BorderHeight := 18
		oChartView:ZoomWidthMode := 2/*exControlSize*/
		oChartView:ZoomHeightMode := 2/*exControlSize*/
		oChartView:Root():Image := 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
63:
How can I ensure that the selected node is visible or fits the chart's area

#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:EnsureVisibleOnSelect := .T.
		oChartView:ScrollOnEnsure := .F.
		oChartView:BorderWidth := 18
		oChartView:BorderHeight := 18
		oChartView:ZoomWidthMode := 1/*exCustomSize*/
		oChartView:ZoomHeightMode := 1/*exCustomSize*/
		oChartView:ZoomWidth := 2
		oChartView:ZoomHeight := 2
		oChartView:Root():Image := 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
62:
How do I avoid slow moving the chart when the user selects a new 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:ScrollByClick := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
61:
How do I ensure that a node is visible or fits the chart's area

#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:Root():Image := 0
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add("Child <b>2</b>")
		oChartView:EnsureVisibleNode("1234")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
60:
How do I change the root node, so it explore from 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 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:Root():Image := 0
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Sub 1","1234")
			oNodes:Add("Sub 2","1234")
			oNodes:Add("Child <b>2</b>")
		oChartView:ExploreFromNode := "1234"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
59:
How do I select a 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:Root():Image := 0
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>",,"1234")
			oNodes:Add("Child <b>2</b>")
		oChartView:SelectNode := "1234"
		oChartView:HideSelection := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
58:
How do I get the node from the cursor
#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} )


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
57:
How do I fix the height for all 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:FixedHeightNode := 32
		oChartView:Root():Image := 0
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>")
			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
56:
How do I fix the width for all 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:FixedWidthNode := 128
		oChartView:Root():Image := 0
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>")
			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
55:
How do I change the style of the link between 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:PenLink := 1/*exPenDash*/
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>")
			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
54:
How do I change the color to link 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:SetProperty("LinkColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>")
			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
53:
How do I change the shape for selected node, using your EBN files

#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(2,"c:\exontrol\images\pushed.ebn")
		oChartView:SetProperty("SelColor",0x2000000)
		oChartView:SelectNode := "root"
		oChartView:HideSelection := .F.
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>")
			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
52:
How do I change the color for selected 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:SetProperty("SelColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,255 } )  , .F. ))
		oChartView:SelectNode := "root"
		oChartView:HideSelection := .F.
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>")
			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
51:
How do I hide the node's shadow

#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:ShadowNode := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
50:
How do I change the pen to draw the border for all nodes

#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:PenBorderNode := 2/*exPenDot*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
49:
How do I change the shape of the border for all nodes

#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:VisualAppearance():Add(2,"c:\exontrol\images\pushed.ebn")
		oChartView:SetProperty("Background",0/*exNodeFrame*/,0x2000000)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
48:
How do I change the shape of the border for all nodes

#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:DrawRoundNode := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
47:
How do I change the foreground color for all 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:SetProperty("ForeColorNode",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>")
			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
46:
How do I change the background color for all 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:SetProperty("BackColorNode",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oNodes := oChartView:Nodes()
			oNodes:Add("Child <b>1</b>")
			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
45:
How do I change the key of the root

#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:Root():Key := "myKey"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
44:
How do I change the caption of the root

#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:Root():Caption := "new<br>root"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
43:
How do I access 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:Root():Caption := "new<br>root"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
42:
How do I access the nodes collection

#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 <b>1</b>")
			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
41:
How do I refresh the control

#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 <b>1</b>")
		oChartView:Nodes():Add("Child <b>2</b>")
		oChartView:Refresh()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
40:
How do I prevent painting while several changes are performed

#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:BeginUpdate()
		oChartView:Nodes():Add("Child <b>1</b>")
		oChartView:Nodes():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
39:
How do I indent the full chart to the right

#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:BorderWidth := 8
		oChartView:BorderHeight := 8

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
38:
How can I change the node's border/frame, using your EBN files

#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:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oChartView:SetProperty("Background",0/*exNodeFrame*/,0x1000000)
		oChartView:Nodes():Add("Child <b>1</b>")
		oChartView:Nodes():Add("Child <b>2</b>")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
37:
How can still display the selected node when the control loses the focus

#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:HideSelection := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
36:
How do I disable or enable the control
#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:Enabled := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
35:
How do I change the visual aspect for thumb parts in the scroll bars, using EBN

#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:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oChartView:VisualAppearance():Add(2,"c:\exontrol\images\pushed.ebn")
		oChartView:VisualAppearance():Add(3,"c:\exontrol\images\hot.ebn")
		oChartView:SetProperty("Background",388/*exHSThumb*/,0x1000000)
		oChartView:SetProperty("Background",389/*exHSThumbP*/,0x2000000)
		oChartView:SetProperty("Background",391/*exHSThumbH*/,0x3000000)
		oChartView:SetProperty("Background",260/*exVSThumb*/,0x1000000)
		oChartView:SetProperty("Background",261/*exVSThumbP*/,0x2000000)
		oChartView:SetProperty("Background",263/*exVSThumbH*/,0x3000000)
		oChartView:FixedWidthNode := 320

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
34:
How do I change the visual aspect only for the thumb in the scroll bar, using EBN

#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:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oChartView:VisualAppearance():Add(2,"c:\exontrol\images\pushed.ebn")
		oChartView:VisualAppearance():Add(3,"c:\exontrol\images\hot.ebn")
		oChartView:SetProperty("Background",388/*exHSThumb*/,0x1000000)
		oChartView:SetProperty("Background",389/*exHSThumbP*/,0x2000000)
		oChartView:SetProperty("Background",391/*exHSThumbH*/,0x3000000)
		oChartView:SetProperty("ScrollThumbSize",1/*exHScroll*/,96)
		oChartView:FixedWidthNode := 320

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
33:
I've seen that you can change the visual appearance for the scroll bar. How can I do that

#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:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oChartView:VisualAppearance():Add(2,"c:\exontrol\images\pushed.ebn")
		oChartView:VisualAppearance():Add(3,"c:\exontrol\images\hot.ebn")
		oChartView:SetProperty("Background",324/*exSBtn*/,0x1000000)
		oChartView:SetProperty("Background",325/*exSBtnP*/,0x2000000)
		oChartView:SetProperty("Background",327/*exSBtnH*/,0x3000000)
		oChartView:SetProperty("Background",404/*exHSBack*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oChartView:SetProperty("Background",276/*exVSBack*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oChartView:SetProperty("Background",3/*exSizeGrip*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oChartView:FixedWidthNode := 320

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
32:
Can I change the forecolor for the 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:ToolTipDelay := 1
		oChartView:ToolTipWidth := 364
		oChartView:SetProperty("Background",66/*exToolTipForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		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
31:
Can I change the background color for the 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:ToolTipDelay := 1
		oChartView:ToolTipWidth := 364
		oChartView:SetProperty("Background",65/*exToolTipBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		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
30:
Can I change the default border of the tooltip, using your EBN files

#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:ToolTipDelay := 1
		oChartView:ToolTipWidth := 364
		oChartView:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oChartView:SetProperty("Background",64/*exToolTipAppearance*/,0x1000000)
		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
29:
How do I call your x-script language

#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:ExecuteTemplate("BackColor = RGB(255,0,0)")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
28:
How do I call your x-script language

#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:Template := "BackColor = RGB(255,0,0)"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
27:
Can I change the font for the tooltip

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

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

	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:ToolTipDelay := 1
		oStdFont := oChartView:ToolTipFont()
			oStdFont:Name := "Tahoma"
			oStdFont:Size := 14
		oChartView:ToolTipWidth := 364
		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
26:
I've seen that the width of the tooltip is variable. Can I make it larger

#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:ToolTipWidth := 328
		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
25:
How do I let the tooltip being displayed longer

#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:ToolTipPopDelay := 10000
		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
24:
How do I disable showing the tooltip for all control
#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:ToolTipDelay := 0
		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
23:
How do I show the tooltip quicker

#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:ToolTipDelay := 1
		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
22:
Can I change the order of the buttons in 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("ScrollOrderParts",1/*exHScroll*/,"t,l,r")
		oChartView:SetProperty("ScrollOrderParts",0/*exVScroll*/,"t,l,r")
		oChartView:FixedWidthNode := 320

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
21:
The thumb size seems to be very small. Can I make it bigger

#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("ScrollThumbSize",1/*exHScroll*/,164)
		oChartView:FixedWidthNode := 320

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
20:
How do I enlarge or change the size of the control's scrollbars

#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:ScrollHeight := 18
		oChartView:ScrollWidth := 18
		oChartView:ScrollButtonWidth := 18
		oChartView:ScrollButtonHeight := 18
		oChartView:FixedWidthNode := 320
		oChartView:FixedHeightNode := 320

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
19:
How can I display my text on the scroll bar, using a different font

#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*/,256/*exThumbPart*/,"This is just a text")
		oChartView:ScrollFont(1/*exHScroll*/):Size := 12
		oChartView:SetProperty("ScrollThumbSize",1/*exHScroll*/,128)
		oChartView:ScrollHeight := 24
		oChartView:SetProperty("ScrollPartCaption",1/*exHScroll*/,256/*exThumbPart*/,"This is <s><font Tahoma;12> just </font></s> text")
		oChartView:ScrollHeight := 20
		oChartView:FixedWidthNode := 320

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
18:
How can I display my text 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*/,256/*exThumbPart*/,"this is just a text")
		oChartView:SetProperty("ScrollThumbSize",1/*exHScroll*/,96)
		oChartView:FixedWidthNode := 320

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

#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("ScrollToolTip",1/*exHScroll*/,"This is a tooltip being shown when you click and drag the thumb in the horizontal scroll bar")
		oChartView:FixedWidthNode := 320

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
16:
How do I assign an icon to the button in the scrollbar

#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:SetProperty("ScrollPartVisible",1/*exHScroll*/,32768/*exLeftB1Part*/,.T.)
		oChartView:SetProperty("ScrollPartCaption",1/*exHScroll*/,32768/*exLeftB1Part*/,"<img>1</img>")
		oChartView:ScrollHeight := 18
		oChartView:ScrollButtonWidth := 18
		oChartView:FixedWidthNode := 320

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
15:
I need to add a button in the scroll bar. Is this possible

#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("ScrollPartVisible",1/*exHScroll*/,32768/*exLeftB1Part*/,.T.)
		oChartView:SetProperty("ScrollPartCaption",1/*exHScroll*/,32768/*exLeftB1Part*/,"1")
		oChartView:FixedWidthNode := 320

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
14:
Can I display an additional buttons in 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("ScrollPartVisible",1/*exHScroll*/,32768/*exLeftB1Part*/,.T.)
		oChartView:SetProperty("ScrollPartVisible",1/*exHScroll*/,16384/*exLeftB2Part*/,.T.)
		oChartView:SetProperty("ScrollPartVisible",1/*exHScroll*/,1/*exRightB6Part*/,.T.)
		oChartView:SetProperty("ScrollPartVisible",1/*exHScroll*/,2/*exRightB5Part*/,.T.)
		oChartView:FixedWidthNode := 320

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
13:
How do I change the control'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: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
12:
How do I change the control'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:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 200,200,200 } )  , .F. ))

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

#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:Font():Name := "Verdana"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
10:
How do I put a picture on the center of the control

#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:Picture := oChartView:ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")
		oChartView:PictureDisplay := 17/*MiddleCenter*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
9:
How do I resize/stretch a picture 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

	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:Picture := oChartView:ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")
		oChartView:PictureDisplay := 49/*Stretch*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
8:
How do I put a picture on the control's center right bottom side

#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:Picture := oChartView:ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")
		oChartView:PictureDisplay := 34/*LowerRight*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
7:
How do I put a picture on the control's center left bottom side

#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:Picture := oChartView:ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")
		oChartView:PictureDisplay := 32/*LowerLeft*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
6:
How do I put a picture on the control's center top side

#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:Picture := oChartView:ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")
		oChartView:PictureDisplay := 1/*UpperCenter*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
5:
How do I put a picture on the control's right top corner

#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:Picture := oChartView:ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")
		oChartView:PictureDisplay := 2/*UpperRight*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
4:
How do I put a picture on the control's left top corner

#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:Picture := oChartView:ExecuteTemplate("loadpicture(`c:\exontrol\images\zipdisk.gif`)")
		oChartView:PictureDisplay := 0/*UpperLeft*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
3:
How do I put a picture 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

	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: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
2:
How do I change the control's border, using your EBN files

#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:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oChartView:Appearance := 16777216/*0x1000000+*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
1:
How do I remove the control's border

#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:Appearance := 0/*None2*/

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