RMChart
Enviado: 10 Mai 2016 12:43
Quintas,
Não funcionou, porque deu um monte de erro:
Qual é o ch que traduz esse declare?
Não funcionou, porque deu um monte de erro:
Qual é o ch que traduz esse declare?
Código: Selecionar todos
FOR x:=1 TO LEN(aDadosGraf)
nRetVal := hb_dynCall( {"RMC_ADDBARSERIES", nHandleDLL, HB_DYN_CALLCONV_STDCALL },;
ID_CHART, 1, @aDadosGraf[1], 12, RMC_BARGROUP, RMC_BAR_FLAT_GRADIENT2, .F., 0, .F., 1, RMC_VLABEL_ABSOLUTE, x, RMC_HATCHBRUSH_OFF )
NEXT
Código: Selecionar todos
STATIC FUNCTION RmChart
nHandleDLL:=hb_LibLoad("rmchart.dll")
oCrt := WvgCrt():New( , , { -1, -1 }, { 25, 85 }, , .T. )
oCrt:lModal := .T.
oCrt:icon := "demo.ico"
oCrt:create()
oCrt:resizable := .F.
HB_gtInfo(HB_GTI_WINTITLE, "Grafico com RmChart - Dll")
cLegenda := "Entradas*Saidas*Mais Um"
cLabels := "Janeiro*Fevereiro*Março*Abril*Maio*Junho*Julho*Agosto*Setembro*Outubro*Novembro*Dezembro"
cTitulo := "Gráfico de Teste"
aDados := { { 225.25, 100.00, 100.00, 150.00, 250.00, 300.00, 25.00, 75.00, 300.00, 200.00, 325.00, 300.00 } , { 220.00, 100.00, 125.00, 300.00, 150.00, 125.00, 85.00, 50.00, 285.00, 275.00, 295.00, 280.00 }, { 125.25, 100.00, 100.00, 150.00, 250.00, 300.00, 25.00, 75.00, 300.00, 200.00, 325.00, 300.00 } }
aDadosGraf:={}
cImagem := ""
cUnidade := "R$ "
cTextoVert := ""
nMax := 0
DECLARE oData1[12]
DECLARE oData2[12]
DECLARE oData3[12]
FOR cTrGra1:=1 TO LEN( aDados )
nMax := MAX( nMax, aMax( aDados[cTrGra1] ) )
FOR cTrGra2:=1 TO LEN( aDados[cTrGra1] )
IF cTrGra1 == 1
oData1[cTrGra2] := aDados[cTrGra1, cTrGra2]
ELSEIF cTrGra1 == 2
oData2[cTrGra2] := aDados[cTrGra1, cTrGra2]
ELSEIF cTrGra1 == 3
oData3[cTrGra2] := aDados[cTrGra1, cTrGra2]
ENDIF
NEXT
IF cTrGra1 == 1
AADD( aDadosGraf, oData1[1] )
ELSEIF cTrGra1 == 2
AADD( aDadosGraf, oData2[1] )
ELSEIF cTrGra1 == 3
AADD( aDadosGraf, oData3[1] )
ENDIF
NEXT
nMax := ROUND( ( INT( nMax/10 ) * 10 ) + 10 , 2 )
nRetVal := hb_dynCall( { "RMC_CREATECHART", nHandleDLL, HB_DYN_CALLCONV_STDCALL },;
hb_gtInfo( HB_GTI_WINHANDLE ), ID_CHART, 0, 0, 770, 400, Azure, RMC_CTRLSTYLE3DLIGHT, .F., cImagem, "", 0, 0 )
nRetVal := hb_dynCall( {"RMC_ADDREGION", nHandleDLL, HB_DYN_CALLCONV_STDCALL },;
ID_CHART, 0, 0, 760, 400, "RmChart", .F. )
nRetVal := hb_dynCall( {"RMC_ADDCAPTION", nHandleDLL, HB_DYN_CALLCONV_STDCALL },;
ID_CHART, 1, cTitulo, Transparent, Red, 9, .T. )
nRetVal := hb_dynCall( {"RMC_ADDGRID", nHandleDLL, HB_DYN_CALLCONV_STDCALL },;
ID_CHART, 1, LightBlue, .F., 20, 20, 685, 330, RMC_BICOLOR_LABELAXIS )
nRetVal := hb_dynCall( {"RMC_ADDLABELAXIS", nHandleDLL, HB_DYN_CALLCONV_STDCALL },;
ID_CHART, 1, cLabels, 1, Len( aDados[1] ), RMC_LABELAXISBOTTOM, 8, Black, RMC_TEXTCENTER, Black, RMC_LINESTYLENONE, "" )
//Len( aDados[1] )
nRetVal := hb_dynCall( {"RMC_ADDDATAAXIS", nHandleDLL, HB_DYN_CALLCONV_STDCALL },;
ID_CHART, 1, RMC_DATAAXISRIGHT, 0.0, nMax, Len( aDados[1] ), 8, Black, Black, RMC_LINESTYLESOLID, 0, cUnidade, cTextoVert, "", RMC_TEXTCENTER )
nRetVal := hb_dynCall( {"RMC_ADDLEGEND", nHandleDLL, HB_DYN_CALLCONV_STDCALL },;
ID_CHART, 1, cLegenda, RMC_LEGEND_BOTTOM, Transparent, RMC_LEGENDNORECT, Red, 8, .T. )
FOR x:=1 TO LEN(aDadosGraf)
cValue:=aDadosGraf[x]
nRetVal := hb_dynCall( {"RMC_ADDBARSERIES", nHandleDLL, HB_DYN_CALLCONV_STDCALL },;
ID_CHART, 1, @cValue, 12, RMC_BARGROUP , RMC_BAR_FLAT_GRADIENT2, .F., 0, .F., 1, RMC_VLABEL_NONE, X, RMC_HATCHBRUSH_ONPRINTING )
NEXT
nRetVal:=hb_dynCall( { "RMC_DRAW", nHandleDLL, HB_DYN_CALLCONV_STDCALL },;
ID_CHART)
Inkey(0)
oCrt:destroy()
hb_LibFree(nHandleDLL)
RETURN Nil
Código: Selecionar todos
CREATE CLASS RmChart
VAR nHandle
METHOD CreateChart( ... ) INLINE hb_DynCall( { "RMC_CREATECHART", ::nHandle, HB_DYN_CALLCONV_STDCALL }, ... )
METHOD AddRegion( ... ) INLINE hb_DynCall( { "RMC_ADDREGION", ::nHandle, HB_DYN_CALLCONV_STDCALL }, ... )
METHOD AddCaption( ... ) INLINE hb_DynCall( { "RMC_ADDCAPTION", ::nHandle, HB_DYN_CALLCONV_STDCALL }, ... )
METHOD AddGrid( ... ) INLINE hb_DynCall( { "RMC_ADDGRID", ::nHandle, HB_DYN_CALLCONV_STDCALL }, ... )
METHOD AddLabelAxis( ... ) INLINE hb_DynCall( { "RMC_ADDLABELAXIS", ::nHandle, HB_DYN_CALLCONV_STDCALL }, ... )
METHOD AddDataAxis( ... ) INLINE hb_DynCall( { "RMC_ADDDATAAXIS", ::nHandle, HB_DYN_CALLCONV_STDCALL }, ... )
METHOD AddLegend( ... ) INLINE hb_DynCall( { "RMC_ADDLEGEND", ::nHandle, HB_DYN_CALLCONV_STDCALL }, ... )
METHOD AddBarSeries( ... ) INLINE hb_DynCall( { "RMC_ADDBARSERIES", ::nHandle, HB_DYN_CALLCONV_STDCALL }, ... )
METHOD Draw( ... ) INLINE hb_DynCall( { "RMC_DRAW", ::nHandle, hb_BIToR( HB_DYN_CTYPE_LONG, HB_DYN_CALLCONV_STDCALL ) }, ... )
METHOD New()
METHOD Destroy()
ENDCLASS
METHOD New()
::nHandle := hb_LibLoad( "RMChart.dll" )
RETURN SELF
METHOD Destroy()
hb_LibFree( ::nHandle )
RETURN NIL
Código: Selecionar todos
CREATE CLASS RmChart
VAR nHandle
METHOD CreateChart( ... ) INLINE ::CallDllStd( "RMC_CREATECHART", ... )
METHOD AddRegion( ... ) INLINE ::CallDllStd( "RMC_ADDREGION", ... )
METHOD AddCaption( ... ) INLINE ::CallDllStd( "RMC_ADDCAPTION", ... )
METHOD AddGrid( ... ) INLINE ::CallDllStd( "RMC_ADDGRID", ... )
METHOD AddLabelAxis( ... ) INLINE ::CallDllStd( "RMC_ADDLABELAXIS", ... )
METHOD AddDataAxis( ... ) INLINE ::CallDllStd( "RMC_ADDDATAAXIS", ... )
METHOD AddLegend( ... ) INLINE ::CallDllStd( "RMC_ADDLEGEND", ... )
METHOD AddBarSeries( ... ) INLINE ::CallDllStd( "RMC_ADDBARSERIES", ... )
METHOD Draw( ... ) INLINE ::CallDllOut( "RMC_DRAW", ... )
METHOD New() INLINE ::nHandle := hb_LibLoad( "RMChart.dll" ), SELF
METHOD Destroy() INLINE hb_LibFree( ::nHandle )
METHOD CallDllStd( cName, ... ) INLINE hb_DynCall( { cName, ::nHandle, HB_DYN_CALLCONV_STDCALL }, ... )
METHOD CallDllOut( cName, ... ) INLINE hb_DynCall( { cName, ::nHandle, hb_BitOr( HB_DYN_CTYPE_LONG, HB_DYN_CALLCONV_STDCALL ) }, ... )
ENDCLASS
Código: Selecionar todos
FUNCTION Grafico
oChart:=RmChart():New()
oCrt := WvgCrt():New( , , { -1, -1 }, { 25, 85 }, , .T. )
oCrt:lModal := .T.
oCrt:icon := "demo.ico"
oCrt:create()
oCrt:resizable := .F.
HB_gtInfo(HB_GTI_WINTITLE, "Grafico com RmChart - Dll")
cLegenda := "Entradas*Saidas*Mais Um"
cLabels := "Janeiro*Fevereiro*Março*Abril*Maio*Junho*Julho*Agosto*Setembro*Outubro*Novembro*Dezembro"
cTitulo := "Gráfico de Teste"
aDados := { { 225.25, 100.00, 100.00, 150.00, 250.00, 300.00, 25.00, 75.00, 300.00, 200.00, 325.00, 300.00 },;
{ 220.00, 100.00, 125.00, 300.00, 150.00, 125.00, 85.00, 50.00, 285.00, 275.00, 295.00, 280.00 },;
{ 125.25, 100.00, 100.00, 150.00, 250.00, 300.00, 25.00, 75.00, 300.00, 200.00, 325.00, 300.00 } }
aDadosGraf:={}
cImagem := ""
cUnidade := "R$ "
cTextoVert := ""
nMax := 0
DECLARE oData1[12]
DECLARE oData2[12]
DECLARE oData3[12]
FOR cTrGra1:=1 TO LEN( aDados )
nMax := MAX( nMax, aMax( aDados[cTrGra1] ) )
FOR cTrGra2:=1 TO LEN( aDados[cTrGra1] )
IF cTrGra1 == 1
oData1[cTrGra2] := aDados[cTrGra1, cTrGra2]
ELSEIF cTrGra1 == 2
oData2[cTrGra2] := aDados[cTrGra1, cTrGra2]
ELSEIF cTrGra1 == 3
oData3[cTrGra2] := aDados[cTrGra1, cTrGra2]
ENDIF
NEXT
IF cTrGra1 == 1
AADD( aDadosGraf, oData1[1] )
ELSEIF cTrGra1 == 2
AADD( aDadosGraf, oData2[1] )
ELSEIF cTrGra1 == 3
AADD( aDadosGraf, oData3[1] )
ENDIF
NEXT
nMax := ROUND( ( INT( nMax/10 ) * 10 ) + 10 , 2 )
oChart:CreateChart(hb_gtInfo( HB_GTI_WINHANDLE ), ID_CHART, 0, 0, 770, 400, Azure, RMC_CTRLSTYLE3DLIGHT, .F., cImagem, "", 0, 0 )
oChart:AddRegion(ID_CHART, 0, 0, 760, 400, "RmChart", .F. )
oChart:AddCaption(ID_CHART, 1, cTitulo, Transparent, Red, 9, .T. )
oChart:AddGrid(ID_CHART, 1, LightBlue, .F., 20, 20, 685, 330, RMC_BICOLOR_LABELAXIS )
oChart:AddLabelAxis(ID_CHART, 1, cLabels, 1, Len( aDados[1] ), RMC_LABELAXISBOTTOM, 8, Black, RMC_TEXTCENTER, Black, RMC_LINESTYLENONE, "" )
oChart:AddDataAxis(ID_CHART, 1, RMC_DATAAXISRIGHT, 0.0, nMax, Len( aDados[1] ), 8, Black, Black, RMC_LINESTYLESOLID, 0, cUnidade, cTextoVert, "", RMC_TEXTCENTER )
oChart:AddLegend(ID_CHART, 1, cLegenda, RMC_LEGEND_BOTTOM, Transparent, RMC_LEGENDNORECT, Red, 8, .T. )
FOR x:=1 TO LEN(aDadosGraf)
cValue:= aDadosGraf[x]
oChart:AddBarSeries(ID_CHART, 1, @cValue, 12, RMC_BARGROUP , RMC_BAR_FLAT_GRADIENT2, .F., 0, .F., 1, RMC_VLABEL_NONE, X, RMC_HATCHBRUSH_ONPRINTING )
NEXT
oChart:Draw(ID_CHART)
Inkey(0)
oCrt:destroy()
oChart:Destroy()
RETURN Nil
Código: Selecionar todos
ReDim aData(4)
aData(0) = 30#: aData(1) = 20#: aData(2) = 40#: aData(3) = 60#: aData(4) = 10#
nRetVal = RMC_AddBarSeries(ID_RMC1, 1, aData(0), 5, RMC_BARGROUP, RMC_BAR_HOVER, False, Gold, False, 1, RMC_VLABEL_NONE, 1, RMC_HATCHBRUSH_OFF)
Código: Selecionar todos
#include "hbclass.ch"
#include "rmchart.ch"
#include "hbgtinfo.ch"
#include "hbdyn.ch"
FUNCTION Main
LOCAL nHandleDll, oCrt, cLegenda, cLabels, cTitulo, aDados, cImagem, cUnidade, cTextoVert, nMax, id_Chart, ctrgra1
LOCAL oMeses, oCompara, oElemento
nHandleDLL := hb_libLoad( "rmchart.dll" )
oCrt := WvgCrt():New( , , { -1, -1 }, { 25, 85 }, , .T. )
oCrt:lModal := .T.
oCrt:icon := "demo.ico"
oCrt:create()
oCrt:resizable := .F.
hb_gtInfo( HB_GTI_WINTITLE, "Grafico com RmChart - Dll" )
cLegenda := "Entradas*Saidas*Mais Um"
cLabels := "Janeiro*Fevereiro*Março*Abril*Maio*Junho*Julho*Agosto*Setembro*Outubro*Novembro*Dezembro"
cTitulo := "Gráfico de Teste"
aDados := { { 225.25, 100.00, 100.00, 150.00, 250.00, 300.00, 25.00, 75.00, 300.00, 200.00, 325.00, 300.00 }, { 220.00, 100.00, 125.00, 300.00, 150.00, 125.00, 85.00, 50.00, 285.00, 275.00, 295.00, 280.00 }, { 125.25, 100.00, 100.00, 150.00, 250.00, 300.00, 25.00, 75.00, 300.00, 200.00, 325.00, 300.00 } }
aDadosGraf := {}
cImagem := ""
cUnidade := "R$ "
cTextoVert := ""
nMax := 0
id_Chart := 1
FOR cTrGra1 := 1 TO Len( aDados )
nMax := Max( nMax, aMax( aDados[ cTrGra1 ] ) )
NEXT
nMax := Round( ( Int( nMax / 10 ) * 10 ) + 10, 2 )
nRetVal := hb_DynCall( { "RMC_CREATECHART", nHandleDLL, HB_DYN_CALLCONV_STDCALL }, ;
hb_gtInfo( HB_GTI_WINHANDLE ), ID_CHART, 0, 0, 770, 400, Azure, RMC_CTRLSTYLE3DLIGHT, .F., cImagem, "", 0, 0 )
nRetVal := hb_DynCall( { "RMC_ADDREGION", nHandleDLL, HB_DYN_CALLCONV_STDCALL }, ;
ID_CHART, 0, 0, 760, 400, "RmChart", .F. )
nRetVal := hb_DynCall( { "RMC_ADDCAPTION", nHandleDLL, HB_DYN_CALLCONV_STDCALL }, ;
ID_CHART, 1, cTitulo, Transparent, Red, 9, .T. )
nRetVal := hb_DynCall( { "RMC_ADDGRID", nHandleDLL, HB_DYN_CALLCONV_STDCALL }, ;
ID_CHART, 1, LightBlue, .F., 20, 20, 685, 330, RMC_BICOLOR_LABELAXIS )
nRetVal := hb_DynCall( { "RMC_ADDLABELAXIS", nHandleDLL, HB_DYN_CALLCONV_STDCALL }, ;
ID_CHART, 1, cLabels, 1, Len( aDados[ 1 ] ), RMC_LABELAXISBOTTOM, 8, Black, RMC_TEXTCENTER, Black, RMC_LINESTYLENONE, "" )
// Len( aDados[1] )
nRetVal := hb_DynCall( { "RMC_ADDDATAAXIS", nHandleDLL, HB_DYN_CALLCONV_STDCALL }, ;
ID_CHART, 1, RMC_DATAAXISRIGHT, 0.0, nMax, Len( aDados[ 1 ] ), 8, Black, Black, RMC_LINESTYLESOLID, 0, cUnidade, cTextoVert, "", RMC_TEXTCENTER )
nRetVal := hb_DynCall( { "RMC_ADDLEGEND", nHandleDLL, HB_DYN_CALLCONV_STDCALL }, ;
ID_CHART, 1, cLegenda, RMC_LEGEND_BOTTOM, Transparent, RMC_LEGENDNORECT, Red, 8, .T. )
FOR EACH oElemento IN aDados
nRetVal := hb_DynCall( { "RMC_ADDBARSERIES", nHandleDLL, HB_DYN_CALLCONV_STDCALL }, ;
ID_CHART, 1, @oElemento[ 1 ], 12, RMC_BARGROUP, RMC_BAR_FLAT_GRADIENT2, .F., 0, .F., 1, RMC_VLABEL_NONE, 12, RMC_HATCHBRUSH_ONPRINTING )
NEXT
nRetVal := hb_DynCall( { "RMC_DRAW", nHandleDLL, HB_DYN_CALLCONV_STDCALL }, ;
ID_CHART )
Inkey( 0 )
oCrt:destroy()
hb_libFree( nHandleDLL )
RETURN NIL
CREATE CLASS RmChart
METHOD CreateChart( ... ) INLINE ::CallDllStd( "RMC_CREATECHART", ... )
METHOD AddRegion( ... ) INLINE ::CallDllStd( "RMC_ADDREGION", ... )
METHOD AddCaption( ... ) INLINE ::CallDllStd( "RMC_ADDCAPTION", ... )
METHOD AddGrid( ... ) INLINE ::CallDllStd( "RMC_ADDGRID", ... )
METHOD AddLabelAxis( ... ) INLINE ::CallDllStd( "RMC_ADDLABELAXIS", ... )
METHOD AddDataAxis( ... ) INLINE ::CallDllStd( "RMC_ADDDATAAXIS", ... )
METHOD AddLegend( ... ) INLINE ::CallDllStd( "RMC_ADDLEGEND", ... )
METHOD AddBarSeries( ... ) INLINE ::CallDllStd( "RMC_ADDBARSERIES", ... )
METHOD Draw( ... ) INLINE ::CallDllOut( "RMC_DRAW", ... )
METHOD CallDllStd( cName, ... ) INLINE hb_DynCall( { cName, "RMChart.dll", HB_DYN_CALLCONV_STDCALL }, ... )
METHOD CallDllOut( cName, ... ) INLINE hb_DynCall( { cName, "RMChart.dll", hb_bitOr( HB_DYN_CTYPE_LONG, HB_DYN_CALLCONV_STDCALL ) }, ... )
ENDCLASS
FUNCTION AMax( x )
LOCAL nVal, oElement
nVal := x[ 1 ]
FOR EACH oElement IN x
IF oElement > nVal
nVal := oElement
ENDIF
NEXT
RETURN nVal
Código: Selecionar todos
#include "hbclass.ch"
#include "rmchart.ch"
#include "hbgtinfo.ch"
#include "hbdyn.ch"
FUNCTION Main
LOCAL oCrt, cLegenda, cLabels, cTitulo, aDados, cImagem, cUnidade, cTextoVert, nMax, id_Chart, ctrgra1
LOCAL oMeses, oCompara, oElemento, oGrafico := RMChart():New()
oCrt := WvgCrt():New( , , { -1, -1 }, { 25, 85 }, , .T. )
oCrt:lModal := .T.
oCrt:icon := "demo.ico"
oCrt:create()
oCrt:resizable := .F.
hb_gtInfo( HB_GTI_WINTITLE, "Grafico com RmChart - Dll" )
cLegenda := "Entradas*Saidas*Mais Um"
cLabels := "Janeiro*Fevereiro*Março*Abril*Maio*Junho*Julho*Agosto*Setembro*Outubro*Novembro*Dezembro"
cTitulo := "Gráfico de Teste"
aDados := { { 225.25, 100.00, 100.00, 150.00, 250.00, 300.00, 25.00, 75.00, 300.00, 200.00, 325.00, 300.00 }, { 220.00, 100.00, 125.00, 300.00, 150.00, 125.00, 85.00, 50.00, 285.00, 275.00, 295.00, 280.00 }, { 125.25, 100.00, 100.00, 150.00, 250.00, 300.00, 25.00, 75.00, 300.00, 200.00, 325.00, 300.00 } }
aDadosGraf := {}
cImagem := ""
cUnidade := "R$ "
cTextoVert := ""
nMax := 0
id_Chart := 1
FOR cTrGra1 := 1 TO Len( aDados )
nMax := Max( nMax, aMax( aDados[ cTrGra1 ] ) )
NEXT
nMax := Round( ( Int( nMax / 10 ) * 10 ) + 10, 2 )
oGrafico:CreateChart( hb_gtInfo( HB_GTI_WINHANDLE ), ID_CHART, 0, 0, 770, 400, Azure, RMC_CTRLSTYLE3DLIGHT, .F., cImagem, "", 0, 0 )
oGrafico:AddRegion( ID_CHART, 0, 0, 760, 400, "RmChart", .F. )
oGrafico:AddCaption( ID_CHART, 1, cTitulo, Transparent, Red, 9, .T. )
oGrafico:AddGrid( ID_CHART, 1, LightBlue, .F., 20, 20, 685, 330, RMC_BICOLOR_LABELAXIS )
oGrafico:AddLabelAxis( ID_CHART, 1, cLabels, 1, Len( aDados[ 1 ] ), RMC_LABELAXISBOTTOM, 8, Black, RMC_TEXTCENTER, Black, RMC_LINESTYLENONE, "" )
oGrafico:AddDataAxis( ID_CHART, 1, RMC_DATAAXISRIGHT, 0.0, nMax, Len( aDados[ 1 ] ), 8, Black, Black, RMC_LINESTYLESOLID, 0, cUnidade, cTextoVert, "", RMC_TEXTCENTER )
oGrafico:AddLegend( ID_CHART, 1, cLegenda, RMC_LEGEND_BOTTOM, Transparent, RMC_LEGENDNORECT, Red, 8, .T. )
FOR EACH oElemento IN aDados
oGrafico:AddBarSeries( ID_CHART, 1, @oElemento[ 1 ], 12, RMC_BARGROUP, RMC_BAR_FLAT_GRADIENT2, .F., 0, .F., 1, RMC_VLABEL_NONE, 12, RMC_HATCHBRUSH_ONPRINTING )
NEXT
oGrafico:Draw( ID_CHART )
Inkey( 0 )
oCrt:destroy()
oGrafico:Destroy()
RETURN NIL
CREATE CLASS RmChart
VAR nHandle
METHOD New() INLINE ::nHandle := hb_LibLoad( "RMChart.dll" ), SELF
METHOD Destroy() INLINE hb_LibFree( ::nHandle )
METHOD CreateChart( ... ) INLINE ::CallDllStd( "RMC_CREATECHART", ... )
METHOD AddRegion( ... ) INLINE ::CallDllStd( "RMC_ADDREGION", ... )
METHOD AddCaption( ... ) INLINE ::CallDllStd( "RMC_ADDCAPTION", ... )
METHOD AddGrid( ... ) INLINE ::CallDllStd( "RMC_ADDGRID", ... )
METHOD AddLabelAxis( ... ) INLINE ::CallDllStd( "RMC_ADDLABELAXIS", ... )
METHOD AddDataAxis( ... ) INLINE ::CallDllStd( "RMC_ADDDATAAXIS", ... )
METHOD AddLegend( ... ) INLINE ::CallDllStd( "RMC_ADDLEGEND", ... )
METHOD AddBarSeries( ... ) INLINE ::CallDllStd( "RMC_ADDBARSERIES", ... )
METHOD Draw( ... ) INLINE ::CallDllStd( "RMC_DRAW", ... )
METHOD CallDllStd( cName, ... ) INLINE hb_DynCall( { cName, ::nHandle, HB_DYN_CALLCONV_STDCALL }, ... )
ENDCLASS
FUNCTION AMax( x )
LOCAL nVal, oElement
nVal := x[ 1 ]
FOR EACH oElement IN x
IF oElement > nVal
nVal := oElement
ENDIF
NEXT
RETURN nVal