325
|
Defines the representation method for the data in all series where the type property is not specified, determining how these series are visually displayed

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:AutoFit := .T.
oGraph:SerieType := "rangeArea"
oSeries := oGraph:Series()
oSeries:Add("Chinese(14.1),Spanish(6.7),English(4.9),Hindi(4.2),Arabic(4.1),Bengali(3.3),Portuguese(2.9),Russian(2.8),Japanese(1.7),Lahnda(1.6)","Worldwide")
oSeries:Add("Chinese(13.2),Spanish(6.6),English(4.8),Hindi(4.1),Arabic(4.0),Bengali(3.2),Portuguese(2.8),Russian(2.7),Japanese(1.6),Lahnda(1.5)","Native")
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
324
|
How can I prevent the labels from rotating around the chart when using the radarColumn type

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:AutoFit := .T.
oGraph:SerieType := "radarCol"
oGraph:SetProperty("Misc",16/*exRadialRotateLabels*/,.F.)
oSeries := oGraph:Series()
oSeries:Add("Chinese(14.1),Spanish(6.7),English(4.9),Hindi(4.2),Arabic(4.1),Bengali(3.3),Portuguese(2.9),Russian(2.8),Japanese(1.7),Lahnda(1.6)","Worldwide")
oSeries:Add("Chinese(13.2),Spanish(6.6),English(4.8),Hindi(4.1),Arabic(4.0),Bengali(3.2),Portuguese(2.8),Russian(2.7),Japanese(1.6),Lahnda(1.5)","Native")
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
323
|
Disable stacking for all series at once

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:AutoFit := .T.
oGraph:AllowStack := .F.
oSeries := oGraph:Series()
oSeries:Add("Chinese(14.1),Spanish(6.7),English(4.9),Hindi(4.2),Arabic(4.1),Bengali(3.3),Portuguese(2.9),Russian(2.8),Japanese(1.7),Lahnda(1.6)","Worldwide"):Stack := "group"
oSeries:Add("Chinese(13.2),Spanish(6.6),English(4.8),Hindi(4.1),Arabic(4.0),Bengali(3.2),Portuguese(2.8),Russian(2.7),Japanese(1.6),Lahnda(1.5)","Native"):Stack := "group"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
322
|
How can I stack more than three data series across multiple columns

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSeries:Add("Chinese(9.165),Spanish(4.355),English(3.185),Hindi(2.73),Arabic(2.665),Bengali(2.145),Portuguese(1.885),Russian(1.82),Japanese(1.105),Lahnda(1.04)","Male"):Stack := "G1"
oSeries:Add("Chinese(4.935),Spanish(2.345),English(1.715),Hindi(1.47),Arabic(1.435),Bengali(1.155),Portuguese(1.015),Russian(0.98),Japanese(0.595),Lahnda(0.56)","Female"):Stack := "G1"
oSeries:Add("Chinese(3.5),Spanish(2.0),English(1.8),Hindi(0.5),Arabic(0.4),Bengali(0.3),Portuguese(0.7),Russian(1.2),Japanese(0.4),Lahnda(0.2)","Europe"):Stack := "G2"
oSeries:Add("Chinese(8.0),Spanish(0.5),English(1.0),Hindi(3.0),Arabic(2.5),Bengali(2.0),Portuguese(0.2),Russian(1.0),Japanese(1.0),Lahnda(0.5)","Asia"):Stack := "G2"
oSeries:Add("Chinese(1.0),Spanish(3.5),English(1.5),Hindi(0.2),Arabic(0.5),Bengali(0.1),Portuguese(1.5),Russian(0.1),Japanese(0.1),Lahnda(0.1)","America"):Stack := "G2"
oSeries:Add("Chinese(0.1),Spanish(0.1),English(0.3),Hindi(0.1),Arabic(0.1),Bengali(0.1),Portuguese(0.1),Russian(0.1),Japanese(0.1),Lahnda(0.1)","Australia"):Stack := "G2"
oSeries:Add("Chinese(1.5),Spanish(0.6),English(0.3),Hindi(0.4),Arabic(0.6),Bengali(0.8),Portuguese(0.4),Russian(0.4),Japanese(0.1),Lahnda(0.5)","Others"):Stack := "G2"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
321
|
How can I stack data more than three series

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSeries:Add("Chinese(14.1),Spanish(6.7),English(4.9),Hindi(4.2),Arabic(4.1),Bengali(3.3),Portuguese(2.9),Russian(2.8),Japanese(1.7),Lahnda(1.6)","Worldwide"):Stack := "group"
oSeries:Add("Chinese(13.2),Spanish(6.6),English(4.8),Hindi(4.1),Arabic(4.0),Bengali(3.2),Portuguese(2.8),Russian(2.7),Japanese(1.6),Lahnda(1.5)","Native"):Stack := "group"
oSeries:Add("Chinese(1.5),Spanish(10.2),English(2.1),Hindi(0.5),Arabic(0.8),Bengali(0.3),Portuguese(3.5),Russian(0.4),Japanese(0.2),Lahnda(0.1)","Regional"):Stack := "group"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
320
|
I use the legend, but clicking a series mostly rearranges them instead of hiding it
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:SetProperty("Misc",17/*exNewLayoutOnVisibleChange*/,.F.)
oGraph:Series():Add("50,150,150,300","A1")
oGraph:Series():Add("180,40,60,160","A2")
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
319
|
Adjusts the column/bar size so that the entire chart fits within the client rectangle
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:CategoryAxis():Categories := "Asia,Africa,Europe,North America,Antarctica,South America,Australia/Oceania"
oGraph:Series():Add("4600,1300,747,579,0,422,42")
oGraph:ValueAutoFit()
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
318
|
The categories overlap, making the text unreadable

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 32
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "Asia,Africa,Europe,North America,Antarctica,South America,Australia/Oceania"
oCategoryAxis:Format := "`<bgcolor white>` + value"
oGraph:Series():Add("4600,1300,747,579,0,422,42")
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
317
|
Represents a single serie with single color (prevent multiple colors for single-serie)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:MultiColorSerie := .F.
oGraph:CategoryAxis():MajorGridLines():Color := "lightgray"
oGraph:Series():Add("Electronics(350),Clothing(200),Books(150)",2001)
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
316
|
How can I replace or add an icon at runtime

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ReplaceIcon("gAAAABgYACEHgUJFEEAAWhUJCEJEEJggEhMCYEXjUbjkJQECj8gj8hAEjkshYEpk8kf8ClsulsvAExmcvf83js5nU7nkCeEcn8boMaocXosCB9Hn09pkzcEuoL/fE+OkYB0gB9YhIHrddgVcr9aktZADAD8+P8CgIA==")
oGraph:ReplaceIcon("C:\images\favicon.ico",0)
oGraph:AutoFit := .T.
oGraph:Series():Add("<img>1</img>Asia(4600),<img>2</img>Africa(1300),<img>3</img>Europe(747),<img>4</img>North America(579),<img>5</img>South America(433),<img>6</img>Australia/Oceania(42)")
oGraph:SeriesColors := "blue"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
315
|
No grid lines are shown even I set the Color and Format properties of ChartGridLines/OverviewGridLines
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oFormatGridLinesOptions
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:Series():Add("100,200,200,400","S1")
oGraph:Series():Add("210,20,20,120","S2")
oFormatGridLinesOptions := oGraph:CategoryAxes():Add("A,B,C,D","1st"):ChartGridLines()
oFormatGridLinesOptions:Color := "red"
oFormatGridLinesOptions:Format := "value"
oGraph:CategoryAxes():Add("E,F","2nd")
oGraph:Refresh()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
314
|
Occasionally, the margins of the axes may not align perfectly with the view

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 18
oGraph:Pad := 24
oGraph:ValueAxis():Format := "value format `0`"
oSerie := oGraph:Series():Add("Hulunbuir{China}(263068),Abu Dhabi{United Arab Emirates}(97200),Jiuquan{China}(167996),Altamira{Brazil}(159891),Brasília{Brazil}(5784),Mumbai{India}(603.4),Delhi{India}(1484),Chongqing{China}(82400),Hulunbuir{China}(263068),Sao Paulo{Brazil}(1522),Linfen{China}(20527),Santiago{Chile}(641),Mexico City{Mexico}(1485),Belo Horizonte{Brazil}(313),Hangzhou{China}(16817),Nairobi{Kenya}(696),Berlin{Germany}(891.68),Montreal{Canada}(431.5),Cordoba{Argentina}(576),Manaus{Brazil}(11401),Astana{Kazakhstan}(810),Goiâni" +;
"a{Brazil}(741),Cali{Colombia}(564),Sao Paulo{Brazil}(1522),Goiania{Brazil}(781)")
oSerie:Type := "Col"
oSerie:Vertical := .T.
oGraph:Sort := "0:D"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
313
|
"candlestick" explained, an [open,high,low,close] chart

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 32
oGraph:ValuePoint := "0,,,,lightgray,1"
oGraph:ValueAxis():MajorGridLines():Step := 4
oSerie := oGraph:Series():Add("One(79.38 79.57 78.86 79.01)")
oSerie:Type := "candlestick"
oSerie:ShowValue := 7/*exValue+exLine+exPoint*/
oSerie:ValueFormat := "(inner array (`<b>open`,`<fgcolor gray>high`,`<fgcolor gray>low`,`<b>close`)) + ` ` + value"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
312
|
"candlestick", a candlestick chart (also called Japanese candlestick chart or K-line) is a style of financial chart used to describe price movements of a security, derivative, or currency. While similar in appearance to a bar chart, each candleStick represents four important pieces of information for that day: open and close in the thick body, and high and low in the "candle wick". Being densely packed with information, it tends to represent trading patterns over short periods of time, often a few days or a few trading sessions. (data requires array of array of four-numbers, such as [[open, high, low and close]], supports vertical field, scrollable)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 18
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "Date"
oCategoryAxis:Format := "value mid 9 left 2"
oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/msft.csv"
oGraph:Series():Add("Open,High,Low,Close","msft"):Type := "candlestick"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
311
|
"ohlc" explained, an [open,high,low,close] chart

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 32
oGraph:ValuePoint := "0,,,,lightgray,1"
oGraph:ValueAxis():MajorGridLines():Step := 4
oSerie := oGraph:Series():Add("One(79.38 79.57 78.86 79.01)")
oSerie:Type := "ohlc"
oSerie:ShowValue := 7/*exValue+exLine+exPoint*/
oSerie:ValueFormat := "(inner array (`<b>open`,`<fgcolor gray>high`,`<fgcolor gray>low`,`<b>close`)) + ` ` + value"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
310
|
"ohlc", an open-high-low-close chart (also OHLC) is a type of chart typically used to illustrate movements in the price of a financial instrument over time. Each vertical line on the chart shows the price range (the highest and lowest prices) over one unit of time, e.g., one day or one hour. Tick marks project from each side of the line indicating the opening price (e.g., for a daily bar chart this would be the starting price for that day) on the left, and the closing price for that time period on the right. The bars may be shown in different hues depending on whether prices rose or fell in that period. (data requires array of array of four-numbers, such as [[open, high, low and close]], supports vertical field, scrollable)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 18
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "Date"
oCategoryAxis:Format := "value mid 9 left 2"
oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/msft.csv"
oGraph:Series():Add("Open,High,Low,Close","msft"):Type := "ohlc"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
309
|
"bubble", a bubble chart or bubble plot is a type of chart that displays three dimensions of data (a bubble chart is an extension of the scatter plot used to look at relationships between three numeric variables.). Each entity with its triplet (v1, v2, v3) of associated data is plotted as a disk that expresses two of the vi values through the disk's xy location and the third through its size. Bubble charts can facilitate the understanding of social, economical, medical, and other scientific relationships. (data requires array of array of three-numbers, such as [[x, y, size]], supports vertical field, non-scrollable)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie,oSerie1
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oSerie := oGraph:Series():Add("1 25 1,2 49 2,3 70 3,4 86 4,5 96 5,6 100 4,7 96 3,8 86 2,9 70 1,10 49 1,11 25 1","Bell<b>1")
oSerie:Type := "bubble"
oSerie:SetProperty("Misc",1/*exScatterPlotSize*/,32)
oSerie1 := oGraph:Series():Add("1 -25 1,2 -49 2,3 -70 3,4 -86 4,5 -96 5,6 -100 6,7 -96 5,8 -86 4,9 -70 3,10 -49 2,11 -25 1","Bell<b>2")
oSerie1:Type := "bubble"
oSerie1:SetProperty("Misc",1/*exScatterPlotSize*/,32)
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
308
|
"scatter", a scatter plot (also called a scatterplot, scatter graph, scatter chart, scattergram, or scatter diagram) is a type of plot or mathematical diagram using Cartesian coordinates to display values for typically two variables for a set of data. (data requires array of array of two-numbers, such as [[x, y]], supports vertical field, non-scrollable)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:Series():Add("1 25,2 49,3 70,4 86,5 96,6 100,7 96,8 86,9 70,10 49,11 25","Bell<b>1"):Type := "scatter"
oGraph:Series():Add("1 -25,2 -49,3 -70,4 -86,5 -96,6 -100,7 -96,8 -86,9 -70,10 -49,11 -25","Bell<b>2"):Type := "scatter"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
307
|
"scatterline", curved

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oSerie := oGraph:Series():Add("1 25,2 49,3 70,4 86,5 96,6 100,7 96,8 86,9 70,10 49,11 25","Bell")
oSerie:Type := "scatterline"
oSerie:Style := 1/*exSpline*/
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
306
|
"scatterline", a scatter line chart is similar with "scatter" type, excepts that lines are shown between scatter plots. (data requires array of array of two-numbers, such as [[x, y]], supports vertical field, non-scrollable)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:Series():Add("1 25,2 49,3 70,4 86,5 96,6 100,7 96,8 86,9 70,10 49,11 25","Bell<b>1"):Type := "scatterline"
oGraph:Series():Add("1 -25,2 -49,3 -70,4 -86,5 -96,6 -100,7 -96,8 -86,9 -70,10 -49,11 -25","Bell<b>2"):Type := "scatterline"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
305
|
"scatterarea", curved

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oSerie := oGraph:Series():Add("1 25,2 49,3 70,4 86,5 96,6 100,7 96,8 86,9 70,10 49,11 25","Bell")
oSerie:Type := "scatterarea"
oSerie:Style := 1/*exSpline*/
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
304
|
"scatterarea", a scatter area chart is similar with "scatterLine" type, excepts that scatter plots zone is filled. (data requires array of array of two-numbers, such as [[x, y]], supports vertical field, non-scrollable)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:Series():Add("1 25,2 49,3 70,4 86,5 96,6 100,7 96,8 86,9 70,10 49,11 25","Bell<b>1"):Type := "scatterarea"
oGraph:Series():Add("1 -25,2 -49,3 -70,4 -86,5 -96,6 -100,7 -96,8 -86,9 -70,10 -49,11 -25","Bell<b>2"):Type := "scatterarea"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
303
|
"polarscatter", shows the serie as non-connected data points (data requires array of array of two-numbers, such as [[angle, value]], non-scrollable)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:SetProperty("Misc",16/*exRadialRotateLabels*/,.F.)
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "45,90,135,180,225,270,315,360"
oCategoryAxis:MajorGridLines():Color := "lightgray"
oSerie := oGraph:Series():Add("0 0,15 2,30 4,45 6,60 8,75 10,90 12,105 14,120 16,135 18,150 20,165 22,180 24,195 26,210 28,225 30,240 32,255 34,270 36,285 38,300 40,315 42,330 44,345 46,360 48,15 50,30 52,45 54,60 56,75 58,90 60","Spiral")
oSerie:Type := "polarscatter"
oSerie:Color := "red"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
302
|
"polarline", represents data points connected with straight line segments (data requires array of array of two-numbers, such as [[angle, value]], non-scrollable)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:SetProperty("Misc",16/*exRadialRotateLabels*/,.F.)
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "45,90,135,180,225,270,315,360"
oCategoryAxis:MajorGridLines():Color := "lightgray"
oSerie := oGraph:Series():Add("0 0,15 2,30 4,45 6,60 8,75 10,90 12,105 14,120 16,135 18,150 20,165 22,180 24,195 26,210 28,225 30,240 32,255 34,270 36,285 38,300 40,315 42,330 44,345 46,360 48,15 50,30 52,45 54,60 56,75 58,90 60","Spiral")
oSerie:Type := "polarLine"
oSerie:Color := "red"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
301
|
"polararea", represents data points connected with straight line segments that enclose a filled area together with the chart pole (data requires array of array of two-numbers, such as [[angle, value]], non-scrollable)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:SetProperty("Misc",16/*exRadialRotateLabels*/,.F.)
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "45,90,135,180,225,270,315,360"
oCategoryAxis:MajorGridLines():Color := "lightgray"
oSerie := oGraph:Series():Add("0 0,15 2,30 4,45 6,60 8,75 10,90 12,105 14,120 16,135 18,150 20,165 22,180 24,195 26,210 28,225 30,240 32,255 34,270 36,285 38,300 40,315 42,330 44,345 46,360 48,15 50,30 52,45 54,60 56,75 58,90 60","Spiral")
oSerie:Type := "polarArea"
oSerie:Color := "lime"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
300
|
"rangearea", a range chart displays sets of data points, each of which is defined by multiple values for the same category, and emphasizes the distance between the two values. The category labels are displayed on the category axis. The plain Range chart fills in the area between the top and the bottom value for each data point. (data requires array of array of two-numbers, such as [[from, to]], supports vertical field, scrollable)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:ValueAxis():Format := "value + `°`"
oGraph:Series():Add("Jan(5 15), Feb(6 16), Mar(8 18), Apr(10 20), May(13 23), Jun(17 28), Jul(20 32), Aug(20 32), Sep(18 28), Oct(14 23), Nov(9 17), Dec(6 15)","Spain"):Type := "rangearea"
oGraph:Series():Add("Jan(3 13), Feb(4 15), Mar(8 17), Apr(11 20), May(15 25), Jun(19 29), Jul(21 31), Aug(21 31), Sep(17 27), Oct(12 22), Nov(7 16), Dec(4 14)","Spain"):Type := "rangearea"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
299
|
"rangecolumn", single

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:ValueAxis():Format := "value + `°`"
oGraph:Series():Add("Jan(5 15), Feb(6 16), Mar(8 18), Apr(10 20), May(13 23), Jun(17 28), Jul(20 32), Aug(20 32), Sep(18 28), Oct(14 23), Nov(9 17), Dec(6 15)","Spain"):Type := "RangeColumn"
oGraph:SeriesColors := "RGB(9,80,239),RGB(9,120,239),RGB(249,186,7),RGB(249,173,7),RGB(255,148,51),RGB(255,125,51),RGB(255,114,51),RGB(255,120,51),RGB(255,139,51),RGB(249,171,7),RGB(249,200,7),RGB(9,110,239)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
298
|
"rangecolumn", a range column chart displays information as a range of data by plotting two Y-values (low and high) per data point. The vertical axis shows the values, and the horizontal axis shows the categories they belong to; in multiple-series range column charts, values are grouped by categories. (data requires array of array of two-numbers, such as [[from, to]], supports vertical field, scrollable)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:ValueAxis():Format := "value + `°`"
oGraph:Series():Add("Jan(5 15), Feb(6 16), Mar(8 18), Apr(10 20), May(13 23), Jun(17 28), Jul(20 32), Aug(20 32), Sep(18 28), Oct(14 23), Nov(9 17), Dec(6 15)","Spain"):Type := "RangeColumn"
oGraph:Series():Add("Jan(3 13), Feb(4 15), Mar(8 17), Apr(11 20), May(15 25), Jun(19 29), Jul(21 31), Aug(21 31), Sep(17 27), Oct(12 22), Nov(7 16), Dec(4 14)","Spain"):Type := "RangeColumn"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
297
|
"pie", a pie chart (or a circle chart) is a circular statistical graphic which is divided into slices to illustrate numerical proportion. In a pie chart, the arc length of each slice (and consequently its central angle and area) is proportional to the quantity it represents. While it is named for its resemblance to a pie which has been sliced, there are variations on the way it can be presented. (data requires array of numbers, non-scrollable)
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:SetProperty("Misc",18/*exPaddingInsidePie*/,2)
oSeries := oGraph:Series()
oSeries:Add("Chinese(14.1),Spanish(6.7),English(4.9),Hindi(4.2),Arabic(4.1),Bengali(3.3),Portuguese(2.9),Russian(2.8),Japanese(1.7),Lahnda(1.6)","Worldwide"):Type := "pie"
oSeries:Add("Chinese(13.2),Spanish(6.6),English(4.8),Hindi(4.1),Arabic(4.0),Bengali(3.2),Portuguese(2.8),Russian(2.7),Japanese(1.6),Lahnda(1.5)","Native"):Type := "pie"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
296
|
"waterfall", a waterfall chart is a form of data visualization that helps in understanding the cumulative effect of sequentially introduced positive or negative values. These intermediate values can either be time based or category based. The waterfall chart is also known as a flying bricks chart or Mario chart due to the apparent suspension of columns (bricks) in mid-air. Often in finance, it will be referred to as a bridge. (data requires array of numbers, supports vertical field, scrollable)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSeries:Add("Chinese(14.1),Spanish(6.7),English(4.9),Hindi(4.2),Arabic(4.1),Bengali(3.3),Portuguese(2.9),Russian(2.8),Japanese(1.7),Lahnda(1.6)","Worldwide"):Type := "waterfall"
oSeries:Add("Chinese(13.2),Spanish(6.6),English(4.8),Hindi(4.1),Arabic(4.0),Bengali(3.2),Portuguese(2.8),Russian(2.7),Japanese(1.6),Lahnda(1.5)","Native"):Type := "waterfall"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
295
|
"radarcolumn", stacked

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie,oSerie1
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSerie := oSeries:Add("Chinese(14.1),Spanish(6.7),English(4.9),Hindi(4.2),Arabic(4.1),Bengali(3.3),Portuguese(2.9),Russian(2.8),Japanese(1.7),Lahnda(1.6)","Worldwide")
oSerie:Type := "radarcolumn"
oSerie:Stack := "group"
oSerie1 := oSeries:Add("Chinese(13.2),Spanish(6.6),English(4.8),Hindi(4.1),Arabic(4.0),Bengali(3.2),Portuguese(2.8),Russian(2.7),Japanese(1.6),Lahnda(1.5)","Native")
oSerie1:Type := "radarcolumn"
oSerie1:Stack := "group"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
294
|
"radarcolumn", displays data in radial columns starting from one center point. The circle is divided into equal portions depending on the number of columns and each column group occupies one portion (similar with "radarArea" type, data requires array of numbers, non-scrollable)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSeries:Add("Chinese(14.1),Spanish(6.7),English(4.9),Hindi(4.2),Arabic(4.1),Bengali(3.3),Portuguese(2.9),Russian(2.8),Japanese(1.7),Lahnda(1.6)","Worldwide"):Type := "radarcolumn"
oSeries:Add("Chinese(13.2),Spanish(6.6),English(4.8),Hindi(4.1),Arabic(4.0),Bengali(3.2),Portuguese(2.8),Russian(2.7),Japanese(1.6),Lahnda(1.5)","Native"):Type := "radarcolumn"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
293
|
"radarline", stacked

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie,oSerie1
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSerie := oSeries:Add("Chinese(14.1),Spanish(6.7),English(4.9),Hindi(4.2),Arabic(4.1),Bengali(3.3),Portuguese(2.9),Russian(2.8),Japanese(1.7),Lahnda(1.6)","Worldwide")
oSerie:Type := "radarline"
oSerie:Stack := "group"
oSerie1 := oSeries:Add("Chinese(13.2),Spanish(6.6),English(4.8),Hindi(4.1),Arabic(4.0),Bengali(3.2),Portuguese(2.8),Russian(2.7),Japanese(1.6),Lahnda(1.5)","Native")
oSerie1:Type := "radarline"
oSerie1:Stack := "group"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
292
|
"radarline" (data requires array of numbers, non-scrollable)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSeries:Add("Chinese(14.1),Spanish(6.7),English(4.9),Hindi(4.2),Arabic(4.1),Bengali(3.3),Portuguese(2.9),Russian(2.8),Japanese(1.7),Lahnda(1.6)","Worldwide"):Type := "radarline"
oSeries:Add("Chinese(13.2),Spanish(6.6),English(4.8),Hindi(4.1),Arabic(4.0),Bengali(3.2),Portuguese(2.8),Russian(2.7),Japanese(1.6),Lahnda(1.5)","Native"):Type := "radarline"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
291
|
"radararea", stacked

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie,oSerie1
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSerie := oSeries:Add("Chinese(14.1),Spanish(6.7),English(4.9),Hindi(4.2),Arabic(4.1),Bengali(3.3),Portuguese(2.9),Russian(2.8),Japanese(1.7),Lahnda(1.6)","Worldwide")
oSerie:Type := "radararea"
oSerie:Stack := "group"
oSerie1 := oSeries:Add("Chinese(13.2),Spanish(6.6),English(4.8),Hindi(4.1),Arabic(4.0),Bengali(3.2),Portuguese(2.8),Russian(2.7),Japanese(1.6),Lahnda(1.5)","Native")
oSerie1:Type := "radararea"
oSerie1:Stack := "group"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
290
|
"radararea", a radar chart is a graphical method of displaying multivariate data in the form of a two-dimensional chart of three or more quantitative variables represented on axes starting from the same point. The relative position and angle of the axes is typically uninformative, but various heuristics, such as algorithms that plot data as the maximal total area, can be applied to sort the variables (axes) into relative positions that reveal distinct correlations, trade-offs, and a multitude of other comparative measures. (data requires array of numbers, non-scrollable)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSeries:Add("Chinese(14.1),Spanish(6.7),English(4.9),Hindi(4.2),Arabic(4.1),Bengali(3.3),Portuguese(2.9),Russian(2.8),Japanese(1.7),Lahnda(1.6)","Worldwide"):Type := "radararea"
oSeries:Add("Chinese(13.2),Spanish(6.6),English(4.8),Hindi(4.1),Arabic(4.0),Bengali(3.2),Portuguese(2.8),Russian(2.7),Japanese(1.6),Lahnda(1.5)","Native"):Type := "radararea"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
289
|
"column", single

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:Series():Add("Chinese(14.1),Spanish(6.7),English(4.9),Hindi(4.2),Arabic(4.1),Bengali(3.3),Portuguese(2.9),Russian(2.8),Japanese(1.7),Lahnda(1.6)","Worldwide"):Type := "column"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
288
|
"column", stacked

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie,oSerie1
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSerie := oSeries:Add("Chinese(14.1),Spanish(6.7),English(4.9),Hindi(4.2),Arabic(4.1),Bengali(3.3),Portuguese(2.9),Russian(2.8),Japanese(1.7),Lahnda(1.6)","Worldwide")
oSerie:Type := "column"
oSerie:Stack := "group"
oSerie1 := oSeries:Add("Chinese(13.2),Spanish(6.6),English(4.8),Hindi(4.1),Arabic(4.0),Bengali(3.2),Portuguese(2.8),Russian(2.7),Japanese(1.6),Lahnda(1.5)","Native")
oSerie1:Type := "column"
oSerie1:Stack := "group"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
287
|
"column", a column chart or column graph is a chart or graph that presents categorical data with rectangular columns with heights proportional to the values that they represent. A horizontal column chart is called a bar chart. (data requires array of numbers, supports vertical field, scrollable)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSeries:Add("Chinese(14.1),Spanish(6.7),English(4.9),Hindi(4.2),Arabic(4.1),Bengali(3.3),Portuguese(2.9),Russian(2.8),Japanese(1.7),Lahnda(1.6)","Worldwide"):Type := "column"
oSeries:Add("Chinese(13.2),Spanish(6.6),English(4.8),Hindi(4.1),Arabic(4.0),Bengali(3.2),Portuguese(2.8),Russian(2.7),Japanese(1.6),Lahnda(1.5)","Native"):Type := "column"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
286
|
"line", stacked

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie,oSerie1
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSerie := oSeries:Add("Chinese(14.1),Spanish(6.7),English(4.9),Hindi(4.2),Arabic(4.1),Bengali(3.3),Portuguese(2.9),Russian(2.8),Japanese(1.7),Lahnda(1.6)","Worldwide")
oSerie:Type := "line"
oSerie:Stack := "group"
oSerie1 := oSeries:Add("Chinese(13.2),Spanish(6.6),English(4.8),Hindi(4.1),Arabic(4.0),Bengali(3.2),Portuguese(2.8),Russian(2.7),Japanese(1.6),Lahnda(1.5)","Native")
oSerie1:Type := "line"
oSerie1:Stack := "group"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
285
|
"line", a line chart or line graph, also known as curve chart is a type of chart which displays information as a series of data points called 'markers' connected by straight line segments. It is a basic type of chart common in many fields. It is similar to a scatter plot except that the measurement points are ordered (typically by their x-axis value) and joined with straight line segments. A line chart is often used to visualize a trend in data over intervals of time - a time series - thus the line is often drawn chronologically. In these cases they are known as run charts. (data requires array of numbers, supports vertical field, scrollable)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSeries:Add("Chinese(14.1),Spanish(6.7),English(4.9),Hindi(4.2),Arabic(4.1),Bengali(3.3),Portuguese(2.9),Russian(2.8),Japanese(1.7),Lahnda(1.6)","Worldwide"):Type := "line"
oSeries:Add("Chinese(13.2),Spanish(6.6),English(4.8),Hindi(4.1),Arabic(4.0),Bengali(3.2),Portuguese(2.8),Russian(2.7),Japanese(1.6),Lahnda(1.5)","Native"):Type := "line"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
284
|
"area", stacked

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie,oSerie1
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSerie := oSeries:Add("Chinese(14.1),Spanish(6.7),English(4.9),Hindi(4.2),Arabic(4.1),Bengali(3.3),Portuguese(2.9),Russian(2.8),Japanese(1.7),Lahnda(1.6)","Worldwide")
oSerie:Type := "area"
oSerie:Stack := "group"
oSerie1 := oSeries:Add("Chinese(13.2),Spanish(6.6),English(4.8),Hindi(4.1),Arabic(4.0),Bengali(3.2),Portuguese(2.8),Russian(2.7),Japanese(1.6),Lahnda(1.5)","Native")
oSerie1:Type := "area"
oSerie1:Stack := "group"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
283
|
"area", an area chart or area graph displays graphically quantitative data. It is based on the line chart. The area between axis and line are commonly emphasized with colors, textures and hatchings. Commonly one compares two or more quantities with an area chart. (data requires array of numbers, supports vertical field, scrollable)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Pad := 18
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSeries:Add("Chinese(14.1),Spanish(6.7),English(4.9),Hindi(4.2),Arabic(4.1),Bengali(3.3),Portuguese(2.9),Russian(2.8),Japanese(1.7),Lahnda(1.6)","Worldwide"):Type := "area"
oSeries:Add("Chinese(13.2),Spanish(6.6),English(4.8),Hindi(4.1),Arabic(4.0),Bengali(3.2),Portuguese(2.8),Russian(2.7),Japanese(1.6),Lahnda(1.5)","Native"):Type := "area"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
282
|
Defines the color to show the frame around the pies

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oSerie := oGraph:Series():Add("1920(1.8),1945(2.3),1970(13.7),1995(5.7),2020(7.8)","Population")
oSerie:Type := "Pie"
oSerie:ShowValue := 7/*exValue+exLine+exPoint*/
oSerie:SetProperty("Misc",7/*exPieFrameColor*/,255)
oSerie:SetProperty("Misc",6/*exLineSize*/,4)
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
281
|
Defines the width of the line to show the serie

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oSerie := oGraph:Series():Add("1920(1.8),1945(2.3),1970(13.7),1995(5.7),2020(7.8)","Population")
oSerie:Type := "Line"
oSerie:SetProperty("Misc",6/*exLineSize*/,4)
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
280
|
Changes the spline's tension and alpha curves

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oSerie := oGraph:Series():Add("1920(1.8),1945(2.3),1970(13.7),1995(5.7),2020(7.8)","Population")
oSerie:Type := "Line"
oSerie:Style := 1/*exSpline*/
oSerie:SetProperty("Misc",4/*exSplineTension*/,0)
oSerie:SetProperty("Misc",5/*exSplineAlpha*/,1)
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
279
|
Enables or disables the presentation of hollow representations. This indicates instances where the closing price exceeds the opening price, resulting in candlesticks characterized by unfilled bodies

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 6
oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/msft.csv"
oSerie := oGraph:Series():Add()
oSerie:Name := "msft"
oSerie:Data := "Open,High,Low,Close"
oSerie:Type := "candle"
oSerie:SetProperty("Misc",3/*exCandleAllowHollow*/,.F.)
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
278
|
Defines the size to display the candle stick

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 18
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "Date"
oCategoryAxis:Format := "value mid 9 left 2"
oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/msft.csv"
oSerie := oGraph:Series():Add()
oSerie:Name := "msft"
oSerie:Data := "Open,High,Low,Close"
oSerie:Type := "ohlc"
oSerie:SetProperty("Misc",2/*exCandleStickSize*/,2)
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
277
|
Defines the radius to show the plot on scatter-type charts

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCursor
LOCAL oSerie,oSerie1
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oSerie := oGraph:Series():Add("11 22 33,44 55 66,77 88 99,12 34 56,78 90 23")
oSerie:Type := "bubble"
oSerie:SetProperty("Misc",1/*exScatterPlotSize*/,64)
oSerie1 := oGraph:Series():Add("21 32 43,54 65 76,87 98 09,45 67 89,90 23 45")
oSerie1:Type := "bubble"
oSerie1:SetProperty("Misc",1/*exScatterPlotSize*/,64)
oCursor := oGraph:Cursor()
oCursor:Visible := .T.
oCursor:ShowCursorXLine := .F.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
276
|
Customizes the captions to be shown within the legend

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:ValueAxis():AsPercent := .T.
oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)"):LegendFormat := "trim(label replace `Ocean` with ``)"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
275
|
Stacked (data points within a series are stacked on top of each other rather than plotted side by side)
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:CategoryAxis():MajorGridLines():Color := "lightgray"
oSeries := oGraph:Series()
oSeries:Add("Electronics(350),Clothing(200),Books(150)",2001):Stack := "A"
oSeries:Add("Electronics(500),Clothing(150),Books(180)",2002):Stack := "A"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
274
|
Draws a curved line

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oSerie := oGraph:Series():Add("1920(1.8),1945(2.3),1970(3.7),1995(5.7),2020(7.8)","Population")
oSerie:Type := "Line"
oSerie:Style := 1/*exSpline*/
oSerie:SetProperty("Misc",6/*exLineSize*/,2)
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
273
|
Customizes the values to display on the chart (showValue property includes the exValue)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:CategoryAxis():Visible := .F.
oSerie := oGraph:Series():Add("Pacific(16525), Atlantic(10646), Indian(7056), Southern(2033), Arctic(1406)")
oSerie:ShowValue := 7/*exValue+exLine+exPoint*/
oSerie:ValueFormat := "category + `<br><b>` + (percent format ``) + `%`"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
272
|
Shows or hides the serie's value-points, value-lines and values

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:Series():Add("Pacific(16525), Atlantic(10646), Indian(7056), Southern(2033), Arctic(1406)"):ShowValue := 7/*exValue+exLine+exPoint*/
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
271
|
Shows or hides the serie

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSerie := oSeries:Add("Facebook(125),Google(94),Twitter(38),LinkedIn(172),Instagram(53),Pinterest(187),Snapchat(104),WhatsApp(19)")
oSerie:Visible := .F.
oSerie:Vertical := .T.
oSerie:Name := Transform(2001,"")
oSeries:Add("Facebook(176),Google(81),Twitter(47),LinkedIn(159),Instagram(62),Pinterest(193),Snapchat(118),WhatsApp(25)"):Name := Transform(2002,"")
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
270
|
Show bars graph (the serie is showing the data vertically or horizontally)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAAEhABUQDg6AADACAxRDAMgBQKAAzAJBIYhiGgcYCgMZBSDeCYXABCEYRXBIZQ7BKNIxjSJwFiCCQwSDKEjyCKsGRHF6MI6gOYpCgOIYjRJNIASVAceAAHCUZrjSgobAiCYlTZCIBQS5oOBIACmabiegZLgmQInUrMEggVDgJSPuTWNQUdYdJQTHIZBpEWyLKjkNQwWrCNr3DTUEyNDauIDpCKLCpGZYYVRPOAgAKldxhGCaJokGkgc4HHyrcCwfDAMraCQQWAAF62Jb1JyrSSBchnOwpDpuCaVQLXUB5RRNQyZTiyIrtS5AAqnNJzW5cE46Li0B5QAC8QA1S7NPo/HaZT5kGB7ZDddzuADfcLlfD5BxEDCUhQmEPAbl6K4hlKQ5snwNwtleDxpBeMRIHmd4+A8R4/BuRZvEABQDEmDJoHUOQZEYMgVjQSIEE0fwRjCWQJAoEIXHWQxCAGBBggAbpemOCJaDaRowkQKwfgSEJCBQ" +;
"DAGnCWAsDYTJTLSBwOlgfghggIgohYIA3A0Iw8GcCxCigZAsguB4hBwQ4HAyZAMjMJhJjIPBdA0SZxkAOoPEOIhMGEDYJHGSB0gmIg5CYSAokgAZggME4DCkAhACbIhgioIwImQDhXCOCQRHgNwogcIJyGCGImBGMAyAqYxJCISINAcAJcC0JxGmCbIiByQ5Zk4dYdCWORqFgJJGACYIkB0A5pn6AYgAmcY8DwHRDlCOg3CaZIKCwfgSgOOgUDwKRHFCfoUiWKRaF4eQACWMhUGEDoKHGWBAigag6gqJIpCmYJogMExDEqLA0ioah6giKAdkQGpOjWLQrGobjfEYMJwioHhEDqfpBjACohmAQoxGwewakiMpsisNBCCqbALEAQ40i0KtjCYRhQnSLQekQWxul2NwKlGaBEjgbg7gqZI5m4a4kEQK4tkuMBFjuLprFiDgnAYYJ8jAHxEHuXp5j4L4rnafI/m+PAGnoLBvgwEBH5Aa5Ih8GhEBKUIABKMJ" +;
"sEMDwtAecQnBSRYxFwXwakYcZBCSNZDnGcQrCGlIigQagQkscgIEyShyjyKI3CARI8j8MZMDMLJXDSTZEjKYwqk6BJMnMPI8goMYwEQLoIEEOxElGNBdB8SpSHSTQjE6UZLj0FxRBONQ9E6cgpEaUQYj0IYFA0bxdlcNZilwfwTEiYRUDwHZDkCSxoAyNhQnMYgTHWYp4gcFB3C2Uxzl0N4IoQBvAjEwAQIApRfDvH2PELgOhEhUDwI0GgxBIgEDQEMRQ4hPgGBKBgEgSBTjIHkHwS4KQ8siEQJIMIkQxCvBwCoS4hAQCkBuIYcIuRrBzE6BMK4Eg7D0HOEAewIgDilFwPwE4mBODvDUCoew9BsiMCyJYQg+BlAiEwMQNArxwCKH6PARYLR6hSCuFYMYFRSgZBMCwA45gfiFHSAocomB5AnCmGcH4tAkgNFGHkFQNAGAEHAN4GQERhgQF0GsDIxg/iTHIJwMw4RVA2EMCEOA9APgGE+JgNATBHE4F6Ac" +;
"UAZwuAYAAAgBBAQ==")
oSeries := oGraph:Series()
oSerie := oSeries:Add("Facebook(125),Google(94),Twitter(38),LinkedIn(172),Instagram(53),Pinterest(187),Snapchat(104),WhatsApp(19)")
oSerie:Color := 16777216
oSerie:Vertical := .T.
oSeries:Add("Facebook(176),Google(81),Twitter(47),LinkedIn(159),Instagram(62),Pinterest(193),Snapchat(118),WhatsApp(25)"):Color := 16777216
oGraph:SeriesColors := "red,RGB(255,128,0)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
269
|
Defines the name of the chart serie which is visible in the legend

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
LOCAL oValueAxis
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oValueAxis := oGraph:ValueAxis()
oValueAxis:AsPercent := .T.
oValueAxis:Format := "(value * 100 format `0`) + `%`"
oSeries := oGraph:Series()
oSeries:Add("Asian(10),Black(13),Hispanic(15),White(60),Other(7)","<fgcolor blue>Population")
oSeries:Add("Asian(65),Black(69),Hispanic(67),White(70),Other(68)"):Name := "<fgcolor teal>Height"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
268
|
Defines the visual appearance of the serie using EBN colors (method 3,mixt)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAAEhABVoDg6AADACAxRDAMgBQKAAzAJBIYhiGgcYCgMZBSDeCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADIOAzyPAsVwSGobRpkEaIMiONoYR5Ac4yFAcQxHE6TZRGeQRRiGModT5HFIxXIsBgRECEQChFzQcCQAJUVZFdAyVQlDRCGSpJrkEC4cBCCZPTzUNR1LS9WS1DoaRJoG4ZHDUMJyS7dcjyHINGwxMinJrwKA6bi6BAwYYAEwUPAYcT9QaRZznOQaLhiQIdVxDNbURgWKgVBK/AiqCA7Bq2VpYZZmFB5VJ9P5LPiEcE+fAdTQHUS0dItPR7OiacJ4TpdF48BhVdY7UCEdoADYtYxCP6qSxiFDUDA/CsF5KloAAXm4VBfEuKJUFuZxSi6DouAY34NDWdItg2HgTjaWZHDuVpPAae4DkQGRwjyXBvlcE47iMdoelQDYyHcHJkGGFIAEAARAGkGJHEGVByBkVBUCSFhEgQIQ2BM" +;
"RpDGQJAoHuEIXDUCAGBGAYBHsc4NhMNJOCqCJCDoKIKiKGIuC6CxjAiMgyguYw4iSXg2g2MZoEcEJJjGLA4CiBwwnSJQdEOcogHcEBKjGZBDCuB4xBSMQfEQcpUgAEoLgICBMC6SBBDiPghkUEwEgkFJMEILBVCyR4RDiGQckcIY8DYCwJnGQA6hAJApBIRoSCSKQyE6FAlCkUhWhYJYpHIXoYCYIwcg0FZHiCeA0hqJpJjocIQmQWQeEmEpklkPhRhSZRZF4WYWmWWR+GEFRoCoEoGBmQpQiiAwTgMIh0G4DpokmToPh2KQpmaFYfCmCZ8jcH4EnITBYA+RpQkQLg3A0Iw8iMIAHgGQA3AsSZxjwPApkcYS5h4BAijQegRAsCRAjQH5EhKXIBBKS4pGSPQhgUAo4HUEtHhAPQxgqUoMmNjRQhAHA7G6I42CUM4HmEKA7jILIrDKTo0C0KxSlaNglhKXB/BMSBxFwUw6k4c4im2QZujwIJtCySYSGyFQ" +;
"YEOKwuk2M5tBEHpTjUbR7GQTgjgUUJym+QoyAwJwiDsSAxDQNJEi8fBXBePpxiGXA8AyMgbjMI5MHIXIenaRQvhwYp8BOMpskMM5PnMLQHAyQ4xAyIw4kWL4sGZDoxmiGwxkKLpxlQPQLi8TQaniUgziwap+BMbwRBsBJBjIO48hcHIHEGMAyAqbBbB6SZVjKLQnDuNptlsfBvA2Qx4iyKwM4GR6BBBMDAQwxQIDkA8BQQYoA+iqGSEUNgmxKhKDKLwVojQ3AGACBAFIFxCAgFIE8RgogUgcBiAsUY8BJAYCaLMPw/xgDwD2F8BYwxtBcCeBcNoWxOBwFIGEZgRgagGCcA0cYJwajOCiFwf4BRhAID4DARYxAEhcCgJkYwdQeB/CwCoeowhcgqBoAwAYWAxAVEiOIdAagkCLGCLmAoBwMB4DoEsRgYRwgyBkIcUg4BmAfZKEgQQUBGhCeGDYBAhQUDaBGBUAYeBHBVAcCIJ4KARCSCGGgbwcQjgaA4Gk" +;
"foxgfjkDUV8GAswLCDE8AIBwtAjAAAQAggIA=")
oSeries := oGraph:Series()
oSeries:Add("Facebook(125),Google(94),Twitter(38),LinkedIn(172),Instagram(53),Pinterest(187),Snapchat(104),WhatsApp(19)"):Color := 16777216
oSeries:Add("Facebook(176),Google(81),Twitter(47),LinkedIn(159),Instagram(62),Pinterest(193),Snapchat(118),WhatsApp(25)"):Color := 16777216
oGraph:SeriesColors := "red,RGB(255,128,0)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
267
|
Defines the color to show the serie (method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSeries:Add("Facebook(125),Google(94),Twitter(38),LinkedIn(172),Instagram(53),Pinterest(187),Snapchat(104),WhatsApp(19)")
oSeries:Add("Facebook(176),Google(81),Twitter(47),LinkedIn(159),Instagram(62),Pinterest(193),Snapchat(118),WhatsApp(25)")
oGraph:SeriesColors := "red,RGB(255,128,0)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
266
|
Defines the color to show the serie (method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSeries:Add("Facebook(125),Google(94),Twitter(38),LinkedIn(172),Instagram(53),Pinterest(187),Snapchat(104),WhatsApp(19)"):Color := "red"
oSeries:Add("Facebook(176),Google(81),Twitter(47),LinkedIn(159),Instagram(62),Pinterest(193),Snapchat(118),WhatsApp(25)"):Color := 33023
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
265
|
Changes the position of the serie

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSeries:Add("Facebook(125),Google(94),Twitter(38),LinkedIn(172),Instagram(53),Pinterest(187),Snapchat(104),WhatsApp(19)")
oSeries:Add("Facebook(176),Google(81),Twitter(47),LinkedIn(159),Instagram(62),Pinterest(193),Snapchat(118),WhatsApp(25)")
oGraph:Series():Item(1):Position := 0
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
264
|
Referencing a series by its key

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oSeries := oGraph:Series()
oSeries:Add("Facebook(125),Google(94),Twitter(38),LinkedIn(172),Instagram(53),Pinterest(187),Snapchat(104),WhatsApp(19)"):Key := "1st"
oSeries:Add("Facebook(176),Google(81),Twitter(47),LinkedIn(159),Instagram(62),Pinterest(193),Snapchat(118),WhatsApp(25)"):Key := "2nd"
oGraph:Series():Item("2nd"):Visible := .F.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
263
|
Removes the serie (click to remove the serie)
PROCEDURE OnClick(oGraph)
oGraph:Series():Remove(0)
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:Click := {|| OnClick(oGraph)} /*Occurs when the user presses and then releases the left mouse button over the control.*/
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:Series():Add("Pacific(16525), Atlantic(10646), Indian(7056), Southern(2033), Arctic(1406)")
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
262
|
Clears the series (click to remove all series)
PROCEDURE OnClick(oGraph)
oGraph:Series():Clear()
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:Click := {|| OnClick(oGraph)} /*Occurs when the user presses and then releases the left mouse button over the control.*/
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:Series():Add("Pacific(16525), Atlantic(10646), Indian(7056), Southern(2033), Arctic(1406)")
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
261
|
Add multiple series (mixt)
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie,oSerie1
LOCAL oSeries
LOCAL oValueAxes
LOCAL oValueAxis,oValueAxis1
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:SetProperty("Misc",1/*exBaseMajorUnits*/,"1,5")
oGraph:CategoryAxis():MajorGridLines():Color := "lightgray"
oValueAxes := oGraph:ValueAxes()
oValueAxis := oValueAxes:Add("g+a")
oValueAxis:End := 0.66
oValueAxis:MajorGridLines():Step := 1000
oValueAxis1 := oValueAxes:Add("p")
oValueAxis1:Start := 0.66
oValueAxis1:MajorGridLines():Step := 1000
oSeries := oGraph:Series()
oSerie := oSeries:Add("UnitedStates(22.7),China(17.6),Japan(5.0),Germany(4.4),India(3.2),UnitedKingdom(3.1),France(3.0),Brazil(2.5)","GDP")
oSerie:Axis := "g+a"
oSerie:Stack := "g+a"
oSeries:Add("UnitedStates(331),China(1400),Japan(126),Germany(83),India(1400),UnitedKingdom(68),France(67),Brazil(213)","Population"):Axis := "p"
oSerie1 := oSeries:Add("UnitedStates(9.8),China(9.6),Japan(0.377),Germany(0.357),India(3.3),UnitedKingdom(0.610),France(0.695),Brazil(8.5)","Area")
oSerie1:Axis := "g+a"
oSerie1:Stack := "g+a"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
260
|
Add multiple series (same value-axis, stacked)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:CategoryAxis():MajorGridLines():Color := "lightgray"
oSeries := oGraph:Series()
oSeries:Add("UnitedStates(22.7),China(17.6),Japan(5.0),Germany(4.4),India(3.2),UnitedKingdom(3.1),France(3.0),Brazil(2.5)","GDP"):Stack := "g+a"
oSeries:Add("UnitedStates(331),China(1400),Japan(126),Germany(83),India(1400),UnitedKingdom(68),France(67),Brazil(213)","Population")
oSeries:Add("UnitedStates(9.8),China(9.6),Japan(0.377),Germany(0.357),India(3.3),UnitedKingdom(0.610),France(0.695),Brazil(8.5)","Area"):Stack := "g+a"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
259
|
Add multiple series (same value-axis, all stacked)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:CategoryAxis():MajorGridLines():Color := "lightgray"
oSeries := oGraph:Series()
oSeries:Add("UnitedStates(22.7),China(17.6),Japan(5.0),Germany(4.4),India(3.2),UnitedKingdom(3.1),France(3.0),Brazil(2.5)","GDP"):Stack := "all"
oSeries:Add("UnitedStates(331),China(1400),Japan(126),Germany(83),India(1400),UnitedKingdom(68),France(67),Brazil(213)","Population"):Stack := "all"
oSeries:Add("UnitedStates(9.8),China(9.6),Japan(0.377),Germany(0.357),India(3.3),UnitedKingdom(0.610),France(0.695),Brazil(8.5)","Area"):Stack := "all"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
258
|
Add multiple series (same value-axis)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:CategoryAxis():MajorGridLines():Color := "lightgray"
oSeries := oGraph:Series()
oSeries:Add("UnitedStates(22.7),China(17.6),Japan(5.0),Germany(4.4),India(3.2),UnitedKingdom(3.1),France(3.0),Brazil(2.5)","GDP")
oSeries:Add("UnitedStates(331),China(1400),Japan(126),Germany(83),India(1400),UnitedKingdom(68),France(67),Brazil(213)","Population")
oSeries:Add("UnitedStates(9.8),China(9.6),Japan(0.377),Germany(0.357),India(3.3),UnitedKingdom(0.610),France(0.695),Brazil(8.5)","Area")
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
257
|
Add multiple series (different value axes)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSeries
LOCAL oValueAxes
LOCAL oValueAxis,oValueAxis1,oValueAxis2
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:CategoryAxis():MajorGridLines():Color := "lightgray"
oValueAxes := oGraph:ValueAxes()
oValueAxis := oValueAxes:Add("g")
oValueAxis:End := 0.33
oValueAxis:Visible := .F.
oValueAxis:MajorGridLines():Step := 1000
oValueAxis1 := oValueAxes:Add("p")
oValueAxis1:Start := 0.33
oValueAxis1:End := 0.66
oValueAxis1:Visible := .F.
oValueAxis1:MajorGridLines():Step := 1000
oValueAxis2 := oValueAxes:Add("a")
oValueAxis2:Start := 0.66
oValueAxis2:Visible := .F.
oValueAxis2:MajorGridLines():Step := 1000
oSeries := oGraph:Series()
oSeries:Add("UnitedStates(22.7),China(17.6),Japan(5.0),Germany(4.4),India(3.2),UnitedKingdom(3.1),France(3.0),Brazil(2.5)","GDP"):Axis := "g"
oSeries:Add("UnitedStates(331),China(1400),Japan(126),Germany(83),India(1400),UnitedKingdom(68),France(67),Brazil(213)","Population"):Axis := "p"
oSeries:Add("UnitedStates(9.8),China(9.6),Japan(0.377),Germany(0.357),India(3.3),UnitedKingdom(0.610),France(0.695),Brazil(8.5)","Area"):Axis := "a"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
256
|
Display the values over the columns

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:ValuePoint := "0,,,,,,0"
oGraph:Series():Add("Pacific(16525), Atlantic(10646), Indian(7056), Southern(2033), Arctic(1406)"):ShowValue := 7/*exValue+exLine+exPoint*/
oGraph:SeriesColors := "RGB(9,80,239),RGB(9,120,239),RGB(249,186,7),RGB(249,173,7),RGB(255,148,51),RGB(255,125,51),RGB(255,114,51),RGB(255,120,51),RGB(255,139,51),RGB(249,171,7),RGB(249,200,7),RGB(9,110,239)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
255
|
Defines the pad, distance between value-label and its frame (the number indicated by the ValuePoint property in the 11-th position)
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 48
oGraph:ValuePoint := ",,,,,,,,,,8"
oGraph:Series():Add("Pacific(16525), Atlantic(10646), Indian(7056), Southern(2033), Arctic(1406)"):ShowValue := 7/*exValue+exLine+exPoint*/
oGraph:SeriesColors := "RGB(9,80,239),RGB(9,120,239),RGB(249,186,7),RGB(249,173,7),RGB(255,148,51),RGB(255,125,51),RGB(255,114,51),RGB(255,120,51),RGB(255,139,51),RGB(249,171,7),RGB(249,200,7),RGB(9,110,239)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
254
|
Defines the size of the frame around the value-label (the number indicated by the ValuePoint property in the 10-th position)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 48
oGraph:ValuePoint := ",,,,,,,,,4"
oGraph:Series():Add("Pacific(16525), Atlantic(10646), Indian(7056), Southern(2033), Arctic(1406)"):ShowValue := 7/*exValue+exLine+exPoint*/
oGraph:SeriesColors := "RGB(9,80,239),RGB(9,120,239),RGB(249,186,7),RGB(249,173,7),RGB(255,148,51),RGB(255,125,51),RGB(255,114,51),RGB(255,120,51),RGB(255,139,51),RGB(249,171,7),RGB(249,200,7),RGB(9,110,239)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
253
|
Defines the color of the frame around the value-label (the color indicated by the ValuePoint property in the 9-th position)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 48
oGraph:ValuePoint := ",,,,,,,,red"
oGraph:Series():Add("Pacific(16525), Atlantic(10646), Indian(7056), Southern(2033), Arctic(1406)"):ShowValue := 7/*exValue+exLine+exPoint*/
oGraph:SeriesColors := "RGB(9,80,239),RGB(9,120,239),RGB(249,186,7),RGB(249,173,7),RGB(255,148,51),RGB(255,125,51),RGB(255,114,51),RGB(255,120,51),RGB(255,139,51),RGB(249,171,7),RGB(249,200,7),RGB(9,110,239)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
252
|
Defines the background color of the value-label (the color indicated by the ValuePoint property in the 8-th position)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 48
oGraph:ValuePoint := ",,,,,,,red"
oGraph:Series():Add("Pacific(16525), Atlantic(10646), Indian(7056), Southern(2033), Arctic(1406)"):ShowValue := 7/*exValue+exLine+exPoint*/
oGraph:SeriesColors := "RGB(9,80,239),RGB(9,120,239),RGB(249,186,7),RGB(249,173,7),RGB(255,148,51),RGB(255,125,51),RGB(255,114,51),RGB(255,120,51),RGB(255,139,51),RGB(249,171,7),RGB(249,200,7),RGB(9,110,239)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
251
|
Defines the length of the line (the number indicated by the ValuePoint property in the 7-th position)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 48
oGraph:ValuePoint := ",,,,,,0"
oGraph:Series():Add("Pacific(16525), Atlantic(10646), Indian(7056), Southern(2033), Arctic(1406)"):ShowValue := 7/*exValue+exLine+exPoint*/
oGraph:SeriesColors := "RGB(9,80,239),RGB(9,120,239),RGB(249,186,7),RGB(249,173,7),RGB(255,148,51),RGB(255,125,51),RGB(255,114,51),RGB(255,120,51),RGB(255,139,51),RGB(249,171,7),RGB(249,200,7),RGB(9,110,239)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
250
|
Defines the size of the line from the value point to its label (the number indicated by the ValuePoint property in the 6-th position)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 48
oGraph:ValuePoint := ",,,,,4"
oGraph:Series():Add("Pacific(16525), Atlantic(10646), Indian(7056), Southern(2033), Arctic(1406)"):ShowValue := 7/*exValue+exLine+exPoint*/
oGraph:SeriesColors := "RGB(9,80,239),RGB(9,120,239),RGB(249,186,7),RGB(249,173,7),RGB(255,148,51),RGB(255,125,51),RGB(255,114,51),RGB(255,120,51),RGB(255,139,51),RGB(249,171,7),RGB(249,200,7),RGB(9,110,239)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
249
|
Defines the color of the line from the value point to its label (the color indicated by the ValuePoint property in the 5-th position)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 48
oGraph:ValuePoint := ",,,,red"
oGraph:Series():Add("Pacific(16525), Atlantic(10646), Indian(7056), Southern(2033), Arctic(1406)"):ShowValue := 7/*exValue+exLine+exPoint*/
oGraph:SeriesColors := "RGB(9,80,239),RGB(9,120,239),RGB(249,186,7),RGB(249,173,7),RGB(255,148,51),RGB(255,125,51),RGB(255,114,51),RGB(255,120,51),RGB(255,139,51),RGB(249,171,7),RGB(249,200,7),RGB(9,110,239)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
248
|
Defines the size of the frame around the value point (the number indicated by the ValuePoint property in the 4-th position)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 48
oGraph:ValuePoint := ",,,4"
oGraph:Series():Add("Pacific(16525), Atlantic(10646), Indian(7056), Southern(2033), Arctic(1406)"):ShowValue := 7/*exValue+exLine+exPoint*/
oGraph:SeriesColors := "RGB(9,80,239),RGB(9,120,239),RGB(249,186,7),RGB(249,173,7),RGB(255,148,51),RGB(255,125,51),RGB(255,114,51),RGB(255,120,51),RGB(255,139,51),RGB(249,171,7),RGB(249,200,7),RGB(9,110,239)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
247
|
Defines the color of the frame around the value point (the color indicated by the ValuePoint property in the 3-rd position)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 48
oGraph:ValuePoint := ",,red"
oGraph:Series():Add("Pacific(16525), Atlantic(10646), Indian(7056), Southern(2033), Arctic(1406)"):ShowValue := 7/*exValue+exLine+exPoint*/
oGraph:SeriesColors := "RGB(9,80,239),RGB(9,120,239),RGB(249,186,7),RGB(249,173,7),RGB(255,148,51),RGB(255,125,51),RGB(255,114,51),RGB(255,120,51),RGB(255,139,51),RGB(249,171,7),RGB(249,200,7),RGB(9,110,239)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
246
|
Defines the color of the value point (the color indicated by the ValuePoint property in the 2-nd position)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 48
oGraph:ValuePoint := ",red"
oGraph:Series():Add("Pacific(16525), Atlantic(10646), Indian(7056), Southern(2033), Arctic(1406)"):ShowValue := 7/*exValue+exLine+exPoint*/
oGraph:SeriesColors := "RGB(9,80,239),RGB(9,120,239),RGB(249,186,7),RGB(249,173,7),RGB(255,148,51),RGB(255,125,51),RGB(255,114,51),RGB(255,120,51),RGB(255,139,51),RGB(249,171,7),RGB(249,200,7),RGB(9,110,239)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
245
|
Defines the size of the value point (the number indicated by the ValuePoint property in the first position)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 48
oGraph:ValuePoint := "16"
oGraph:Series():Add("Pacific(16525), Atlantic(10646), Indian(7056), Southern(2033), Arctic(1406)"):ShowValue := 7/*exValue+exLine+exPoint*/
oGraph:SeriesColors := "RGB(9,80,239),RGB(9,120,239),RGB(249,186,7),RGB(249,173,7),RGB(255,148,51),RGB(255,125,51),RGB(255,114,51),RGB(255,120,51),RGB(255,139,51),RGB(249,171,7),RGB(249,200,7),RGB(9,110,239)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
244
|
Disables resizing the chart by drag and drop (resize the chart's value by clicking and dragging with the middle mouse button)
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 64
oGraph:AllowValueResize := .F.
oGraph:Series():Add("Asia(4600), Africa(1300), Europe(747), North America(579), South America(431), Australia/Oceania(42)")
oGraph:Series():Add("Asia(4458), Africa(3037), North America(2470), South America(1784), Antarctica(1400), Europe(1018), Australia/Oceania(856)")
oGraph:Cursor():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
243
|
Scrolls programatically the chart
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 8
oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/msft.csv"
oGraph:ValueAxis():Format := "value format ``"
oSerie := oGraph:Series():Add()
oSerie:Name := "msft"
oSerie:Data := "Open,High,Low,Close"
oSerie:Type := "candle"
oGraph:SetProperty("ScrollPos",1/*exHScroll*/,256)
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
242
|
Disables scrolling the chart by clicking and dragging the chart
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 8
oGraph:AllowScroll := .F.
oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/msft.csv"
oGraph:ValueAxis():Format := "value format ``"
oSerie := oGraph:Series():Add()
oSerie:Name := "msft"
oSerie:Data := "Open,High,Low,Close"
oSerie:Type := "candle"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
241
|
Disables the scroll bars
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 8
oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/msft.csv"
oGraph:ValueAxis():Format := "value format ``"
oSerie := oGraph:Series():Add()
oSerie:Name := "msft"
oSerie:Data := "Open,High,Low,Close"
oSerie:Type := "candle"
oGraph:ScrollBars := 0/*exNoScroll*/
oGraph:AllowScroll := .F.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
240
|
Hides the scroll bars
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 8
oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/msft.csv"
oGraph:ValueAxis():Format := "value format ``"
oSerie := oGraph:Series():Add()
oSerie:Name := "msft"
oSerie:Data := "Open,High,Low,Close"
oSerie:Type := "candle"
oGraph:ScrollBars := 0/*exNoScroll*/
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
239
|
The maximum value of the axis does not fit the view. Is there anything I can do to ensure that it fits the view

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
oGraph:Pad := 24
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
238
|
Customizes the "no or invalid data" message

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:Invalid := "<fgcolor red>no or invalid data"
oGraph:FormatText := 9/*exTextAlignBottom+exTextAlignCenter*/
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
237
|
Sorts descending the serie

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)"):Vertical := .T.
oGraph:Sort := "0:D"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
236
|
Sorts ascending the serie

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)"):Vertical := .T.
oGraph:Sort := "0"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
235
|
I changed the ValueSize property but it appears that it has no effect

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 32
oGraph:AutoFit := .F.
oGraph:CategoryAxis():Format := "value replace `Ocean` with ``"
oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)"):Type := "Column"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
234
|
Defines the size to show a column or a bar within the chart

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 32
oGraph:CategoryAxis():Format := "value replace `Ocean` with ``"
oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
233
|
Customizes the tooltip (shown while the cursor hovers value-points of the chart)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:SetProperty("Background",65/*exToolTipBackColor*/,AutomationTranslateColor( GraMakeRGBColor ( { 1,0,0 } ) , .F. ))
oGraph:SetProperty("Background",66/*exToolTipForeColor*/,AutomationTranslateColor( GraMakeRGBColor ( { 255,255,255 } ) , .F. ))
oGraph:ToolTipFormat := "`<b>` + category + `</b><br>Value: ` + (value format ``)"
oGraph:AutoFit := .T.
oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)"):ShowValue := 1/*exPoint*/
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
232
|
Resizes the elements of the series to fit the control's content

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:Series():Add("1,2,3,4")
oGraph:AutoFit := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
231
|
Defines the preset color scheme for the chart's series, encompassing both regular and reduced values

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 8
oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/msft.csv"
oGraph:ValueAxis():Format := "value format ``"
oSerie := oGraph:Series():Add()
oSerie:Name := "msft"
oSerie:Data := "Open,High,Low,Close"
oSerie:Type := "candle"
oGraph:SeriesColors := "gray"
oGraph:SeriesColorsDecrease := "black"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
230
|
Defines the default colors for the chart's series

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
LOCAL oSerie
LOCAL oValueAxis
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAAEhABUQDg6AADACAxRDAMgBQKAAzAJBIYhiGgcYCgMZBSDeCYXABCEYRXBIZQ7BKNIxjSJwFiCCQwSDKEjyCKsGRHF6MI6gOYpCgOIYjRJNIASVAceAAHCUZrjSgobAiCYlTZCIBQS5oOBIACmabiegZLgmQInUrMEggVDgJSPuTWNQUdYdJQTHIZBpEWyLKjkNQwWrCNr3DTUEyNDauIDpCKLCpGZYYVRPOAgAKldxhGCaJokGkgc4HHyrcCwfDAMraCQQWAAF62Jb1JyrSSBchnOwpDpuCaVQLXUB5RRNQyZTiyIrtS5AAqnNJzW5cE46Li0B5QAC8QA1S7NPo/HaZT5kGB7ZDddzuADfcLlfD5BxEDCUhQmEPAbl6K4hlKQ5snwNwtleDxpBeMRIHmd4+A8R4/BuRZvEABQDEmDJoHUOQZEYMgVjQSIEE0fwRjCWQJAoEIXHWQxCAGBBggAbpemOCJaDaRowkQKwfgSEJCBQ" +;
"DAGnCWAsDYTJTLSBwOlgfghggIgohYIA3A0Iw8GcCxCigZAsguB4hBwQ4HAyZAMjMJhJjIPBdA0SZxkAOoPEOIhMGEDYJHGSB0gmIg5CYSAokgAZggME4DCkAhACbIhgioIwImQDhXCOCQRHgNwogcIJyGCGImBGMAyAqYxJCISINAcAJcC0JxGmCbIiByQ5Zk4dYdCWORqFgJJGACYIkB0A5pn6AYgAmcY8DwHRDlCOg3CaZIKCwfgSgOOgUDwKRHFCfoUiWKRaF4eQACWMhUGEDoKHGWBAigag6gqJIpCmYJogMExDEqLA0ioah6giKAdkQGpOjWLQrGobjfEYMJwioHhEDqfpBjACohmAQoxGwewakiMpsisNBCCqbALEAQ40i0KtjCYRhQnSLQekQWxul2NwKlGaBEjgbg7gqZI5m4a4kEQK4tkuMBFjuLprFiDgnAYYJ8jAHxEHuXp5j4L4rnafI/m+PAGnoLBvgwEBH5Aa5Ih8GhEBKUIABKMJ" +;
"sEMDwtAecQnBSRYxFwXwakYcZBCSNZDnGcQrCGlIigQagQkscgIEyShyjyKI3CARI8j8MZMDMLJXDSTZEjKYwqk6BJMnMPI8goMYwEQLoIEEOxElGNBdB8SpSHSTQjE6UZLj0FxRBONQ9E6cgpEaUQYj0IYFA0bxdlcNZilwfwTEiYRUDwHZDkCSxoAyNhQnMYgTHWYp4gcFB3C2Uxzl0N4IoQBvAjEwAQIApRfDvH2PELgOhEhUDwI0GgxBIgEDQEMRQ4hPgGBKBgEgSBTjIHkHwS4KQ8siEQJIMIkQxCvBwCoS4hAQCkBuIYcIuRrBzE6BMK4Eg7D0HOEAewIgDilFwPwE4mBODvDUCoew9BsiMCyJYQg+BlAiEwMQNArxwCKH6PARYLR6hSCuFYMYFRSgZBMCwA45gfiFHSAocomB5AnCmGcH4tAkgNFGHkFQNAGAEHAN4GQERhgQF0GsDIxg/iTHIJwMw4RVA2EMCEOA9APgGE+JgNATBHE4F6Ac" +;
"UAZwuAYAAAgBBAQ==")
oGraph:SetProperty("Misc",4/*extVisibleBeforeAxis*/,1)
oGraph:AutoFit := .T.
oGraph:DataOptions := "hdr=1 eor=';' eof=' '"
oGraph:Data := "Month Min Max;Jan -2 10;Feb 0 12;Mar 3 15;Apr 7 18;May 12 22;Jun 16 25;Jul 18 28;Aug 17 27;Sep 14 24;Oct 9 19;Nov 4 15;Dec 0 10"
oValueAxis := oGraph:ValueAxis()
oValueAxis:Format := "value + `°`"
oValueAxis:MajorGridLines():Color := "transparent"
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "Month"
oCategoryAxis:MajorGridLines():Color := "lightgray"
oSerie := oGraph:Series():Add()
oSerie:Data := "Min,Max"
oSerie:Type := "RangeColumn"
oSerie:Vertical := .T.
oSerie:Color := 16777216
oGraph:SeriesColors := "RGB(9,80,239),RGB(9,120,239),RGB(249,186,7),RGB(249,173,7),RGB(255,148,51),RGB(255,125,51),RGB(255,114,51),RGB(255,120,51),RGB(255,139,51),RGB(249,171,7),RGB(249,200,7),RGB(9,110,239)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
229
|
Updates the x-axis, y-axis

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oLineOptions,oLineOptions1
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oLineOptions := oGraph:XAxis():AxisLine()
oLineOptions:Width := 2
oLineOptions:Color := "red"
oLineOptions1 := oGraph:YAxis():AxisLine()
oLineOptions1:Width := 2
oLineOptions1:Color := "red"
oSerie := oGraph:Series():Add()
oSerie:Data := "1 99 1,2 96 2,3 92 3,4 86 4,5 79 5,6 70 6,7 60 7,8 50 8,9 38 9,10 25 10,11 13 11"
oSerie:Type := "bubble"
oSerie:SetProperty("Misc",1/*exScatterPlotSize*/,96)
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
228
|
Updates the default/first value-axis

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oValueAxis
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oValueAxis := oGraph:ValueAxis()
oValueAxis:Tfi := "<fgcolor red>"
oGraph:Series():Add("Friendster(121111111),Facebook(979750000),Flickr(79664888),Google Buzz(170000000),Google+(107319100),Hi5(900202990),Instagram(80202990),MySpace(80202990),Orkut(45067022),Pinterest(197319100),Reddit(360250000),Snapchat(280250000),TikTok(860250000),Tumblr(146890156),Twitter(160250000),WeChat(118123370),Weibo(79195730),Whatsapp(1160250000),YouTube(844638200)")
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
227
|
Updates the default/first category-axis

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
LOCAL oSerie,oSerie1
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "Asia,Africa,Europe,North America,Antarctica,South America,Australia/Oceania"
oCategoryAxis:MajorGridLines():Color := "lightgray"
oSeries := oGraph:Series()
oSerie := oSeries:Add("4600,1300,747,579,0,422,42")
oSerie:Name := "Population"
oSerie:Type := "Line"
oSerie:SetProperty("Misc",6/*exLineSize*/,3)
oSerie1 := oSeries:Add("4458,3037,1018,2470,1784,1018,856")
oSerie1:Name := "Area"
oSerie1:Type := "Column"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
226
|
Add multiple series into the same view

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
LOCAL oSerie,oSerie1
LOCAL oSeries
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "Asia,Africa,Europe,North America,Antarctica,South America,Australia/Oceania"
oCategoryAxis:MajorGridLines():Color := "lightgray"
oSeries := oGraph:Series()
oSerie := oSeries:Add("4600,1300,747,579,0,422,42")
oSerie:Name := "Population"
oSerie:Type := "Line"
oSerie:SetProperty("Misc",6/*exLineSize*/,3)
oSerie1 := oSeries:Add("4458,3037,1018,2470,1784,1018,856")
oSerie1:Name := "Area"
oSerie1:Type := "Column"
oGraph:Legend():Visible := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
225
|
Do do I get the DAO version I have installed
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
DevOut( CreateObject("DAO.DBEngine.35"):Version():Version() )
DevOut( CreateObject("DAO.DBEngine.36"):Version():Version() )
DevOut( CreateObject("DAO.DBEngine.120"):Version():Version() )
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
224
|
How do I get a list of interfaces the object implemenets
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL rs
LOCAL oPrivDBEngine
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oPrivDBEngine := CreateObject("DAO.DBEngine.120")
rs := oPrivDBEngine:OpenDatabase("C:\Program Files\Exontrol\ExGraph\Sample\Access\sample.accdb"):OpenRecordset("MSFT")
DevOut( Transform(CreateObject("Exontrol.PropertiesList"),"") )
oGraph:DataSource := rs
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
223
|
Do do I get the ADO version I have installed
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
DevOut( "ADO Version:" )
DevOut( CreateObject("ADODB.Connection"):Version():Version() )
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
222
|
DAO, ACCDB, 120

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
LOCAL oFormatGridLinesOptions
LOCAL oSerie
LOCAL rs
LOCAL oPrivDBEngine
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 6
oPrivDBEngine := CreateObject("DAO.DBEngine.120")
rs := oPrivDBEngine:OpenDatabase("C:\Program Files\Exontrol\ExGraph\Sample\Access\sample.accdb"):OpenRecordset("MSFT")
oGraph:DataSource := rs
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "Date"
oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
oFormatGridLinesOptions:Format := "value left 7"
oFormatGridLinesOptions:Align := 1024/*exTextCalcRect*/
oFormatGridLinesOptions:Color := "lightgray"
oCategoryAxis:Format := "value left 7"
oCategoryAxis:Split := .T.
oSerie := oGraph:Series():Add()
oSerie:Data := "Open,High,Low,Close"
oSerie:Type := "ohlc"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
221
|
DAO, MDB, 120

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
LOCAL oFormatGridLinesOptions
LOCAL oSerie
LOCAL rs
LOCAL oPrivDBEngine
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 6
oPrivDBEngine := CreateObject("DAO.DBEngine.120")
rs := oPrivDBEngine:OpenDatabase("C:\Program Files\Exontrol\ExGraph\Sample\Access\sample.accdb"):OpenRecordset("MSFT")
oGraph:DataSource := rs
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "Date"
oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
oFormatGridLinesOptions:Format := "value left 7"
oFormatGridLinesOptions:Align := 1024/*exTextCalcRect*/
oFormatGridLinesOptions:Color := "lightgray"
oCategoryAxis:Format := "value left 7"
oCategoryAxis:Split := .T.
oSerie := oGraph:Series():Add()
oSerie:Data := "Open,High,Low,Close"
oSerie:Type := "ohlc"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
220
|
DAO, MDB

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
LOCAL oFormatGridLinesOptions
LOCAL oSerie
LOCAL rs
LOCAL oPrivDBEngine
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 6
oPrivDBEngine := CreateObject("DAO.DBEngine.36")
rs := oPrivDBEngine:OpenDatabase("C:\Program Files\Exontrol\ExGraph\Sample\Access\sample.mdb"):OpenRecordset("MSFT")
oGraph:DataSource := rs
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "Date"
oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
oFormatGridLinesOptions:Format := "value left 7"
oFormatGridLinesOptions:Align := 1024/*exTextCalcRect*/
oFormatGridLinesOptions:Color := "lightgray"
oCategoryAxis:Format := "value left 7"
oCategoryAxis:Split := .T.
oSerie := oGraph:Series():Add()
oSerie:Data := "Open,High,Low,Close"
oSerie:Type := "ohlc"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
219
|
ADODB, ACCDB, x64

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
LOCAL oFormatGridLinesOptions
LOCAL oSerie
LOCAL rs
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 6
rs := CreateObject("ADODB.Recordset")
rs:Open("MSFT","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGraph\Sample\Access\sample.accdb",1/*adOpenKeyset*/,1/*adLockReadOnly*/)
oGraph:DataSource := rs
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "Date"
oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
oFormatGridLinesOptions:Format := "value left 7"
oFormatGridLinesOptions:Align := 1024/*exTextCalcRect*/
oFormatGridLinesOptions:Color := "lightgray"
oCategoryAxis:Format := "value left 7"
oCategoryAxis:Split := .T.
oSerie := oGraph:Series():Add()
oSerie:Data := "Open,High,Low,Close"
oSerie:Type := "ohlc"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
218
|
ADOR, ACCDB

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
LOCAL oFormatGridLinesOptions
LOCAL oSerie
LOCAL rs
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 6
rs := CreateObject("ADOR.Recordset")
rs:Open("MSFT","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGraph\Sample\Access\sample.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/)
oGraph:DataSource := rs
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "Date"
oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
oFormatGridLinesOptions:Format := "value left 7"
oFormatGridLinesOptions:Align := 1024/*exTextCalcRect*/
oFormatGridLinesOptions:Color := "lightgray"
oCategoryAxis:Format := "value left 7"
oCategoryAxis:Split := .T.
oSerie := oGraph:Series():Add()
oSerie:Data := "Open,High,Low,Close"
oSerie:Type := "ohlc"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
217
|
ADODB, MDB

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
LOCAL oFormatGridLinesOptions
LOCAL oSerie
LOCAL rs
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 6
rs := CreateObject("ADODB.Recordset")
rs:Open("MSFT","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGraph\Sample\Access\sample.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/)
oGraph:DataSource := rs
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "Date"
oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
oFormatGridLinesOptions:Format := "value left 7"
oFormatGridLinesOptions:Align := 1024/*exTextCalcRect*/
oFormatGridLinesOptions:Color := "lightgray"
oCategoryAxis:Format := "value left 7"
oCategoryAxis:Split := .T.
oSerie := oGraph:Series():Add()
oSerie:Data := "Open,High,Low,Close"
oSerie:Type := "ohlc"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
216
|
ADOR, MDB

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
LOCAL oFormatGridLinesOptions
LOCAL oSerie
LOCAL rs
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 6
rs := CreateObject("ADOR.Recordset")
rs:Open("MSFT","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGraph\Sample\Access\sample.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/)
oGraph:DataSource := rs
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "Date"
oFormatGridLinesOptions := oCategoryAxis:ChartGridLines()
oFormatGridLinesOptions:Format := "value left 7"
oFormatGridLinesOptions:Align := 1024/*exTextCalcRect*/
oFormatGridLinesOptions:Color := "lightgray"
oCategoryAxis:Format := "value left 7"
oCategoryAxis:Split := .T.
oSerie := oGraph:Series():Add()
oSerie:Data := "Open,High,Low,Close"
oSerie:Type := "ohlc"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
215
|
The value-axis gets updated as soon as the control is scrolled. It is possible to prevent that

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 2
oGraph:SetProperty("Misc",10/*exUpdateRangeOnScroll*/,0)
oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/aapl.txt"
DevOut( Transform(oGraph:DataSample(),"") )
oGraph:Series():Add("AAPL (open),AAPL (high),AAPL (low),AAPL (close)"):Type := "candle"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
214
|
Debug the data I loaded, or gatter a data sample

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 6
oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/aapl.txt"
DevOut( Transform(oGraph:DataSample(),"") )
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
213
|
Imports the control's data from a safe array (array, method 3)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
LOCAL rs
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 6
rs := CreateObject("ADOR.Recordset")
rs:Open("MSFT","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGraph\Sample\Access\sample.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/)
oGraph:Data := rs:GetRows()
DevOut( Transform(oGraph:DataSample(),"") )
oSerie := oGraph:Series():Add()
oSerie:Data := "Column 2,Column 3,Column 4,Column 5"
oSerie:Type := "candle"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
212
|
Imports the control's data from a CSV format (file, method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 6
oGraph:Data := "C:\Program Files\Exontrol\ExGraph\Sample\Data/aapl.txt"
oSerie := oGraph:Series():Add()
oSerie:Name := "aapl"
oSerie:Data := "AAPL (open),AAPL (high),AAPL (low),AAPL (close)"
oSerie:Type := "candle"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
211
|
Imports the control's data from a CSV format (content, string, method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
LOCAL oSerie
LOCAL oValueAxis
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:SetProperty("Misc",4/*extVisibleBeforeAxis*/,1)
oGraph:AutoFit := .T.
oGraph:DataOptions := "hdr=1 eor=';' eof=' '"
oGraph:Data := "Month Min Max;Jan -2 10;Feb 0 12;Mar 3 15;Apr 7 18;May 12 22;Jun 16 25;Jul 18 28;Aug 17 27;Sep 14 24;Oct 9 19;Nov 4 15;Dec 0 10"
oValueAxis := oGraph:ValueAxis()
oValueAxis:Format := "value + `°`"
oValueAxis:MajorGridLines():Color := "transparent"
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "Month"
oCategoryAxis:MajorGridLines():Color := "lightgray"
oSerie := oGraph:Series():Add()
oSerie:Data := "Min,Max"
oSerie:Type := "RangeColumn"
oSerie:Vertical := .T.
oGraph:SeriesColors := "RGB(9,80,239),RGB(9,120,239),RGB(249,186,7),RGB(249,173,7),RGB(255,148,51),RGB(255,125,51),RGB(255,114,51),RGB(255,120,51),RGB(255,139,51),RGB(249,171,7),RGB(249,200,7),RGB(9,110,239)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
210
|
Imports the control's data from a CSV format (file, method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ValueSize := 6
oGraph:Import("C:\Program Files\Exontrol\ExGraph\Sample\Data/aapl.txt")
oSerie := oGraph:Series():Add()
oSerie:Name := "aapl"
oSerie:Data := "AAPL (open),AAPL (high),AAPL (low),AAPL (close)"
oSerie:Type := "candle"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
209
|
Imports the control's data from a CSV format (content, string, method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
LOCAL oSerie
LOCAL oValueAxis
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:SetProperty("Misc",4/*extVisibleBeforeAxis*/,1)
oGraph:AutoFit := .T.
oGraph:Import("Month Min Max;Jan -2 10;Feb 0 12;Mar 3 15;Apr 7 18;May 12 22;Jun 16 25;Jul 18 28;Aug 17 27;Sep 14 24;Oct 9 19;Nov 4 15;Dec 0 10","hdr=1 eor=';' eof=' '")
oValueAxis := oGraph:ValueAxis()
oValueAxis:Format := "value + `°`"
oValueAxis:MajorGridLines():Color := "transparent"
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "Month"
oCategoryAxis:MajorGridLines():Color := "lightgray"
oSerie := oGraph:Series():Add()
oSerie:Data := "Min,Max"
oSerie:Type := "RangeColumn"
oSerie:Vertical := .T.
oGraph:SeriesColors := "RGB(9,80,239),RGB(9,120,239),RGB(249,186,7),RGB(249,173,7),RGB(255,148,51),RGB(255,125,51),RGB(255,114,51),RGB(255,120,51),RGB(255,139,51),RGB(249,171,7),RGB(249,200,7),RGB(9,110,239)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
208
|
Defines the field delimitators, such as eor(end of record), eof(end of field) and hdr(header)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
LOCAL oSerie
LOCAL oValueAxis
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:SetProperty("Misc",4/*extVisibleBeforeAxis*/,1)
oGraph:AutoFit := .T.
oGraph:DataOptions := "hdr=1 eor=';' eof=' '"
oGraph:Data := "Month Min Max;Jan -5 2;Feb -4 7;Mar 1 12;Apr 5 17;May 10 23;Jun 14 26;Jul 15 28;Aug 14 28;Sep 11 25;Oct 5 18;Nov 1 9;Dec -3 4"
oValueAxis := oGraph:ValueAxis()
oValueAxis:Format := "value + `°`"
oValueAxis:MajorGridLines():Color := "transparent"
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "Month"
oCategoryAxis:MajorGridLines():Color := "lightgray"
oSerie := oGraph:Series():Add()
oSerie:Data := "Min,Max"
oSerie:Type := "RangeColumn"
oGraph:SeriesColors := "RGB(9,80,239),RGB(9,120,239),RGB(249,186,7),RGB(249,173,7),RGB(255,148,51),RGB(255,125,51),RGB(255,114,51),RGB(255,120,51),RGB(255,139,51),RGB(249,171,7),RGB(249,200,7),RGB(9,110,239)"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
207
|
Defines the size of the control's tooltip margins

PROCEDURE OnMouseMove(oGraph,Button,Shift,X,Y)
oGraph:ShowToolTip("just a text to be shown when cursor hovers the view","title")
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oGraph,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:ToolTipMargin := "16,16"
oGraph:Series():Add("Asia(4600),Africa(1300),Europe(747),North America(579),South America(433),Australia/Oceania(42)")
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
206
|
Sets the size of icons the control displays

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:ImageSize := 32
oGraph:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
oGraph:AutoFit := .T.
oGraph:Series():Add("<img>1</img>Asia(4600),<img>2</img>Africa(1300),<img>3</img>Europe(747),<img>4</img>North America(579),<img>5</img>South America(433),<img>6</img>Australia/Oceania(42)")
oGraph:SeriesColors := "blue"
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
205
|
Prevents the control to fire any event

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:FreezeEvents(.T.)
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)"):Vertical := .T.
oGraph:EndUpdate()
oGraph:FreezeEvents(.F.)
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
204
|
Display columns using EBN colors (BASE64)

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oSerie
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAAEhABUQDg6AADACAxRDAMgBQKAAzAJBIYhiGgcYCgMZBSDeCYXABCEYRXBIZQ7BKNIxjSJwFiCCQwSDKEjyCKsGRHF6MI6gOYpCgOIYjRJNIASVAceAAHCUZrjSgobAiCYlTZCIBQS5oOBIACmabiegZLgmQInUrMEggVDgJSPuTWNQUdYdJQTHIZBpEWyLKjkNQwWrCNr3DTUEyNDauIDpCKLCpGZYYVRPOAgAKldxhGCaJokGkgc4HHyrcCwfDAMraCQQWAAF62Jb1JyrSSBchnOwpDpuCaVQLXUB5RRNQyZTiyIrtS5AAqnNJzW5cE46Li0B5QAC8QA1S7NPo/HaZT5kGB7ZDddzuADfcLlfD5BxEDCUhQmEPAbl6K4hlKQ5snwNwtleDxpBeMRIHmd4+A8R4/BuRZvEABQDEmDJoHUOQZEYMgVjQSIEE0fwRjCWQJAoEIXHWQxCAGBBggAbpemOCJaDaRowkQKwfgSEJCBQ" +;
"DAGnCWAsDYTJTLSBwOlgfghggIgohYIA3A0Iw8GcCxCigZAsguB4hBwQ4HAyZAMjMJhJjIPBdA0SZxkAOoPEOIhMGEDYJHGSB0gmIg5CYSAokgAZggME4DCkAhACbIhgioIwImQDhXCOCQRHgNwogcIJyGCGImBGMAyAqYxJCISINAcAJcC0JxGmCbIiByQ5Zk4dYdCWORqFgJJGACYIkB0A5pn6AYgAmcY8DwHRDlCOg3CaZIKCwfgSgOOgUDwKRHFCfoUiWKRaF4eQACWMhUGEDoKHGWBAigag6gqJIpCmYJogMExDEqLA0ioah6giKAdkQGpOjWLQrGobjfEYMJwioHhEDqfpBjACohmAQoxGwewakiMpsisNBCCqbALEAQ40i0KtjCYRhQnSLQekQWxul2NwKlGaBEjgbg7gqZI5m4a4kEQK4tkuMBFjuLprFiDgnAYYJ8jAHxEHuXp5j4L4rnafI/m+PAGnoLBvgwEBH5Aa5Ih8GhEBKUIABKMJ" +;
"sEMDwtAecQnBSRYxFwXwakYcZBCSNZDnGcQrCGlIigQagQkscgIEyShyjyKI3CARI8j8MZMDMLJXDSTZEjKYwqk6BJMnMPI8goMYwEQLoIEEOxElGNBdB8SpSHSTQjE6UZLj0FxRBONQ9E6cgpEaUQYj0IYFA0bxdlcNZilwfwTEiYRUDwHZDkCSxoAyNhQnMYgTHWYp4gcFB3C2Uxzl0N4IoQBvAjEwAQIApRfDvH2PELgOhEhUDwI0GgxBIgEDQEMRQ4hPgGBKBgEgSBTjIHkHwS4KQ8siEQJIMIkQxCvBwCoS4hAQCkBuIYcIuRrBzE6BMK4Eg7D0HOEAewIgDilFwPwE4mBODvDUCoew9BsiMCyJYQg+BlAiEwMQNArxwCKH6PARYLR6hSCuFYMYFRSgZBMCwA45gfiFHSAocomB5AnCmGcH4tAkgNFGHkFQNAGAEHAN4GQERhgQF0GsDIxg/iTHIJwMw4RVA2EMCEOA9APgGE+JgNATBHE4F6Ac" +;
"UAZwuAYAAAgBBAQ==")
oGraph:AutoFit := .T.
oSerie := oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)")
oSerie:Color := 16777216
oSerie:Vertical := .T.
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
203
|
Display columns using EBN colors

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
oGraph:AutoFit := .T.
oGraph:Series():Add("Pacific Ocean(16525), Atlantic Ocean(10646), Indian Ocean(7056), Southern Ocean(2033), Arctic Ocean(1406)"):Color := 16777216
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
202
|
Show images

#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
LOCAL oCategoryAxis
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:BeginUpdate()
oGraph:SetProperty("HTMLPicture","china","c:\exontrol\images\zipdisk.gif")
oGraph:SetProperty("HTMLPicture","india","c:\exontrol\images\auction.gif")
oGraph:SetProperty("HTMLPicture","usa","c:\exontrol\images\colorize.gif")
oGraph:SetProperty("Misc",29/*exShowValueIf*/,0)
oGraph:SetProperty("Misc",28/*exShowLabelsIf*/,0)
oGraph:ValueSize := 32
oCategoryAxis := oGraph:CategoryAxis()
oCategoryAxis:Categories := "<img>china</img>,<img>india</img>,<img>usa</img>"
oCategoryAxis:MajorGridLines():Color := "lightgray"
oGraph:Series():Add("1410,1390,331")
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|
201
|
Shows a custom tooltip

PROCEDURE OnMouseMove(oGraph,Button,Shift,X,Y)
oGraph:ShowToolTip("just a text to be shown when cursor hovers the view","title")
RETURN
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oGraph
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oGraph := XbpActiveXControl():new( oForm:drawingArea )
oGraph:CLSID := "Exontrol.Graph.1" /*{FE177A66-2B4E-48E1-ADAD-E5C17BE47660}*/
oGraph:create(,, {10,60},{610,370} )
oGraph:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oGraph,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/
oGraph:BeginUpdate()
oGraph:AutoFit := .T.
oGraph:Series():Add("Asia(4600),Africa(1300),Europe(747),North America(579),South America(433),Australia/Oceania(42)")
oGraph:EndUpdate()
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
|